Extend Sinon stubs for Mongoose methods to test chained methods easily
$ npm install sinon-mongoose
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