Skip to content

Nubescope/sinon-mongoose

Repository files navigation

sinon-mongoose NPM version Build Status devDependency Status Coverage percentage

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

About

Extend Sinon stubs for Mongoose methods to test chained methods easily

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors