mongo-assert
v0.3.1
Published
Mongo assertion library
Downloads
4
Maintainers
Readme
mongo-assert
Mongo assertion library.
Why
This library is created to assert made changes in mongodb. Useful when you want to be sure that method added, updated or deleted only one document, and other were unchanged.
Install
$ npm i -D mongo-assert
Usage
const nassert = require('n-assert')
const mongoassert = require('mongo-assert')
const initialUsers = [
{
_id: nassert.getObjectId(),
email: '[email protected]',
firstName: 'Piter',
lastName: 'Pen'
},
{
_id: nassert.getObjectId(),
email: '[email protected]',
firstName: 'John',
lastName: 'Smith'
}
]
it('should update user', async () => {
let filter = { _id: initialUsers[0]._id }
let userData = {
email: '[email protected]'
}
let updatedUser = {
_id: initialUsers[0]._id,
email: '[email protected]'
}
await User.create(initialUsers)
await usersSrvc.updateUser({ filter, userData })
await mongoassert.assertCollection({
model: User,
initialDocs: initialUsers,
changedDoc: updatedUser,
typeOfChange: updatedUser ? 'updated' : null,
sortField: '_id'
})
})
API
assertCollection({ model, initialDocs, changedDoc, typeOfChange, sortField }) Asserts mongodb collection. Loads all documents in the collection, merges initial collection with changed document and asserts.
model
- mongoose model.initialDocs
- initial documents collection.changedDoc
- changed document, must be omitted or undefined if collection is unchanged.typeOfChange
- the type of the change (created, updated, deleted), must be omitted if collection is unchanged.sortField
- the field which should be used for sorting actual and expected collections before asseting.
Licence
Licensed under the MIT license.
Author
Alexander Mac