
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Based on the API Interface of the NodeJS Assert module. And is part of the uTest Library.
As a standalone module can be found in NPM repository
npm install assertion
assert
equal
notEqual
deepEqual
notDeepEqual
strictEqual
notStrictEqual
throws
doesNotThrow
ifError
has / hasNot
Subset matching
// Substring search
assert.has(String, String | RegExp, ?message);
// Simple property existence check
assert.has(Object, String);
// Sub-object match
assert.has(Object, Object);
// Check if item exists in set
assert.has(Array, Primitive);
// Subset match
assert.has(Array, Array);
When checking arrays or objects, deep matching is performed. See tests
assert.has({
foo: 'foo',
bar: {
qux: {
qux: 'qux'
quux: 'quux'
},
baz: [1, 2, 3]
}
}, {
foo: null,
bar: {
baz: [1],
qux: {
qux: 'qux'
}
}
});
is/isNot
Type check
// Check by Typename
assert.is(Any, String, ?message)
// Check by Contructor (instanceof)
assert.is(Any, Function);
Typename is extracted from Object.prototype.toString.call
, so these are:
'String'
'Number'
'Null'
'Undefined'
'Function'
'RegExp'
'Date'
'Object' // any `object` will pass here
'HTML**' // DOM Node, e.g. HTMLBodyElement
'CustomEvent'
...
all other built-in types
lessThan
lessThanOrEqaul
greaterThan
greaterThanOrEqual
Compares two digits
Aliases
There are also aliases (which can be set to globals, to simplify the write-read of tests)
assert.eq_ === assert.equal
assert.notEq_ === assert.notEqual
assert.lt_ === assert.lessThan
assert.lte_ === assert.lessThanOrEqaul
assert.gt_ === assert.greaterThan
assert.gt_ === assert.greaterThanOrEqual
assert.deepEq_ === assert.deepEqual
assert.notDeepEq_ === assert.notDeepEqual
jQuery
jQuery Assertion Extensions (alias name syntax)
$.fn.eq_
$.fn.notEq_
$.fn.deepEq_
$.fn.notDeepEq_
$.fn.has_
$.fn.hasNot_
$.fn.lt_
$.fn.lte_
$.fn.gt_
$.fn.gte_
Functions API:
(Key, Expected)
([Key, Expected], message)
(FnName [, ...arguments], Expected)
([FnName [, ...arguments], Expected], message)
has/hasNot
(Selector, ?ExpectedCount)
Example:
// <div class='container' id='foo'>
// <h4>Baz</h4>
// <span>Qux</span>
// </div>
$('.container')
.eq_('length', 1)
.eq_('attr', 'id', 'foo')
.eq_('hasClass', 'container', true)
.children()
.eq_('length', 2)
.has_('html', 'span')
.filter('h4')
.eq_('length', 1)
.eq_('text', 'Baz')
// addition sample
.is_('visible'),
.is_('hidden')
.eq_('css', 'border-left-width', '2px')
;
$('.container')
.has_('h4')
.hasNot_('h1')
;
Assert callbacks calls
await
Wait for a callback
Creates a wrapper function to ensure that the function is called.
// ! Arguments order does not matter
var fn = assert.await(
String /* optional - name of this wrapper*/
Function /* optional - wrap the function*/,
Object /* optional - use binded context*/,
Number /* optional - expectation count, default is `1`*/
);
// creates item in assert.callbacks
[
{
name: String,
error: Error, // to receive the stack trace
count: Number
}
];
// after the `fn` function is called `count` times, then the object is removed
// from the callbacks set
// Example
var fn = assert.await();
assert.callbacks.length === 1;
try {
throw new Error()
} catch {
fn();
}
assert.callbacks.length === 0;
avoid
Unexpect more then N function calls
// ! Arguments order does not matter
var fn = assert.avoid(
String /* optional - name of this wrapper*/
Function /* optional - wrap the function*/,
Object /* optional - use binded context*/,
Number /* optional - amount of allowed calls, default is `0`*/
);
fooDfr()
.fail(assert.avoid())
.done(function(){
// ..
})
Listener
You can attach listener to the assertions. Event Types:
start
fail
if
fail
type listener is attached, then exceptions are not thrown.
success
// sample
assert.on('fail', function(error){
error instanceof assert.AssertionError;
});
:copyright: MIT - The Atma.js Project
FAQs
Assertion Library for Browser and Node.JS
The npm package assertion receives a total of 573 weekly downloads. As such, assertion popularity was classified as not popular.
We found that assertion demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.