Extend Sinon stubs for Mongoose methods to test chained methods easily
$ npm install sinon-mongoose
IMPORTANT! As of version 2.2.0 we are supporting sinon >= 5. If you are using sinon < 5 you could have some problems due to some breaking changes in sinon 5.
require('sinon')
require('sinon-mongoose')
If you are using a version < 2 of
sinon-mongoose
we recommend you to use sinon-as-promised to haveresolves
andrejects
methods on stubs.
If you want to test this
MongooseModel.find()
.limit(10)
.sort('-date')
.exec()
.then(function(result) {
console.log(result)
})
Just mock
and expects
as usual and use chain
to expects the chained methods.
Finally call resolves
or rejects
(remember to require sinon-as-promised).
sinon
.mock(MongooseModel)
.expects('find')
.chain('limit')
.withArgs(10)
.chain('sort')
.withArgs('-date')
.chain('exec')
.resolves('SOME_VALUE')
See complete example
If you want to test this
MongooseModel.find()
.limit(10)
.sort('-date')
.exec(function(err, result) {
console.log(result)
})
Just mock
and expects
as usually and use chain
to expects the chained methods.
Finally yields
as always.
sinon
.mock(MongooseModel)
.expects('find')
.chain('limit')
.withArgs(10)
.chain('sort')
.withArgs('-date')
.chain('exec')
.yields(null, 'SOME_VALUE')
See complete example
MIT © Gonzalo Aguirre