sinon-mongoose

Extend Sinon stubs for Mongoose methods to test chained methods easily
Installation
$ 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.
Usage
require('sinon')
require('sinon-mongoose')
With Promises
If you are using a version < 2 of sinon-mongoose
we recommend you to use sinon-as-promised to have resolves
and rejects
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
With callbacks (no Promises)
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
Contributors
@jniemin
@joebowbeer
@YasharF
License
MIT © Gonzalo Aguirre