n-assert
Node.js assertion library.
Why
This library is created to assert the complex objects.
// Some test method returns this object
let actual = {
_id: '5945bf36ccb3fa0011e8533c',
name: 'John',
email: 'john@mail.com',
phones: [
{ type: 'mobile', number: '1234567' }
{ type: 'work', number: '567382' }
],
account: {
number: '11111',
registered: '2010-04-21'
},
createdAt: '2017-02-03'
}
// Ned to do the following assertions:
// _id is exists
// name and email match
// mobile phone is exists and it's a number
// account registered match
let expected = {
_id: '_mock_',
name: 'John',
email: 'john@mail.com',
phones: [
{ type: 'mobile', number: /^d{1,10}$/ }
],
account: {
registered: '2010-04-21'
}
}
nassert.assert(actual, expected)
Commands
# Add to project, should install it as dev dependency
$ npm i -D n-assert
Usage
const nassert = require('n-assert')
should('should find user by name', async () => {
let actual = await usersSrvc.getUserByName('John')
let expected = { /* some data */ }
nassert.assert(actual, expected)
})
API
assert(actual, expected, isEqual)
Asserts thatactualis equal toexpected.actual- actual object.expected- expected object.isEqual- performs a deep assertion betweenactualandexpectedto determine that they are indentical.
assertResponse(res, expectedStatus, expectedBody)
Asserts that status and body inresis equal toexpectedStatusandexpectedBody.res- http response.expectedStatus- expected http response status.expectedBody- expected http response body.
assertFn
Asserts that stubbed function has been called or not, and if called, then with provided arguments. Warning! To usesinonMatchfunction, sinon instance should be initialized vianassert.initSinon(sinon)method.inst- object instance.fnName- stubbed function name in the service.callCount- count of function calles, one by default.nCall- validates that method was called with provided args on that call, zero by default.expectedArgs- expected single argument, should be__without-args__if function is called without arguments.expectedMultipleArgs- expected few arguments.
sinonMatch(expected)
Calls sinon.match and comparesactualvalue withexpectedusingnassert.assert. Returnstrueif values identical, otherwise throws an error. Warning! To usesinonMatchfunction, sinon instance should be initialized vianassert.initSinon(sinon)method.getObjectId()
Returns new mongodb ObjectId.getObjectIdStr()
Returns new mongodb ObjectId in string format.
Author
Alexander Mac
License
Licensed under the MIT license.