Comments (2)
Hi @julianomqs, the tests are fine.
However, I would suggest you to use built-in mongoose static methods instead of a DAO.
This way you will have one file less and your code would become to:
product.model.js
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
var ProductSchema = new mongoose.Schema({
name: String
});
ProductSchema.statics.findAll = function() {
return this.find().exec();
}
module.exports = mongoose.model('Product', ProductSchema);
product.model.spec.js
var Product = require('../lib/model/product.model');
describe('Product', () => {
describe('method findAll', () => {
var ProductMock;
beforeEach(() => {
ProductMock = sinon.mock(Product);
});
afterEach(() => {
ProductMock.verify();
ProductMock.restore();
});
it('should resolve a promise with a non-empty object array', () => {
var expected = [
{__id: 1, name: 'Product 1'},
{__id: 2, name: 'Product 2'}
];
ProductMock
.expects('find')
.chain('exec')
.resolves(expected);
return Product.findAll().should.become(expected);
});
it('should reject a promise with an error', () => {
ProductMock
.expects('find')
.chain('exec')
.rejects('error');
return Product.findAll().should.be.rejected;
});
});
});
Hope it helps!
from sinon-mongoose.
Hi,
Thanks a lot for your help.
from sinon-mongoose.
Related Issues (20)
- Feature Request - Handle MongooseModel.method().cursor() streams HOT 3
- How to mock virtuals HOT 2
- .expects(...).chain is not a function HOT 2
- how to mock mongoose aggregate functions using sinon or sinon-mongoose HOT 1
- TypeError: Attempted to wrap undefined property execPopulate as function HOT 2
- Update sinon peer dependency? HOT 1
- Chain fn does not work properly HOT 2
- TypeError: Attempted to wrap undefined property aggregate as function HOT 2
- sinon 5 release - peer dependency warn HOT 5
- Problems on chaining count with where in array plus limit HOT 5
- Remove dependency on gulp-nsp HOT 1
- Remove dependency on gulp-util due to deprecation HOT 2
- Not compatible with [email protected] createSandbox (chain is not a function) HOT 4
- Failing tests HOT 2
- Removal of unmaintained dependencies HOT 3
- Upgrade of mongoose to +5.5.x HOT 5
- Cannot read property '$handleCallbackError' of undefined
- Readme.md outdated
- Not compatible with Sinon 8.x HOT 14
- Cannot chain existing mongoose query object HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sinon-mongoose.