-
has / hasNot
Subset matching
assert.has(String, String | RegExp, ?message);
assert.has(Object, String);
assert.has(Object, Object);
assert.has(Array, Primitive);
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
assert.is(Any, String, ?message)
assert.is(Any, Function);
Typename is extracted from Object.prototype.toString.call
, so these are:
'String'
'Number'
'Null'
'Undefined'
'Function'
'RegExp'
'Date'
'Object'
'HTML**'
'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:
- Get Property
(Key, Expected)
([Key, Expected], message)
- Function call
(FnName [, ...arguments], Expected)
([FnName [, ...arguments], Expected], message)
has/hasNot
- Node Find/Filter Assertions
Example:
$('.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')
.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.
var fn = assert.await(
String
Function ,
Object ,
Number
);
[
{
name: String,
error: Error,
count: Number
}
];
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
var fn = assert.avoid(
String
Function ,
Object ,
Number
);
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
assert.on('fail', function(error){
error instanceof assert.AssertionError;
});