I am new to unittesting and mocking.I have used mockgoose to mock the mongodb using a tutorial.This is my code to test few API's>i am creating mockgoose in the beginning and destroying it at the end. The test cases pass and the afterall hook fails with this error:
2017-04-18T22:27:31.489Z - error: (node:5960) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 10): TypeError: connection.dropDatabase is not a function
Please help.
'use strict';
let UserController = require('../app/controllers/UserController');
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('../test/server-test');
var Mongoose = require('mongoose').Mongoose;
var mongoose = new Mongoose();
var Mockgoose = require('mockgoose').Mockgoose;
var mockgoose = new Mockgoose(mongoose);
let should = chai.should();
let Customer_id = mongoose.Types.ObjectId();
// let db = require('./_db');
chai.use(chaiHttp);
describe('users', function() {
describe('/admin/api/users users', function() {
before(function(done) {
mockgoose.prepareStorage().then(function() {
console.log("in mockgoose creation");
mongoose.connect(globals.database.mongoUrl + "cstest", function(err) {
console.log("connection created");
done(err);
});
});
});
// // ++++++++++++++++++++++++++++++++Create a User++++++++++++++++++++++++++++++
it('it should CREATE a user', (done) => {
console.log("in post ");
chai.request(server)
.post('/admin/api/users')
.set('cid', '0000')
.send({
name: "LocalSetup",
_id: 1111
})
.end((err, res) => {
if (err) {
console.log("in end");
console.error(err);
}
res.should.have.status(201);
done();
});
});
// ++++++++++++++++++++++++get user by ID++++++++++++++++++++++++++++
it('it should GET userrs', (done) => {
var CustomerModel = {
getByCustomerId: function(a, b, cb) {
cb(null, {
auth0: 'abc123'
});
}
};
chai.request(server)
.get('/admin/api/users')
.set('cid', '0000')
.end((err, res) => {
if (err) {
console.error(err);
return done(err);
}
res.should.have.status(200);
done();
});
});
// ---------------------Update the values--------------------
it('get details', (done) => {
chai.request(server)
.get('/admin/api/users/:userId')
.set('cid', '0000')
.end((err, res) => {
if (err) {
console.log("in get error");
console.error(err);
return done(err);
}
res.should.have.status(200);
console.log("All Users");
done();
});
});
// +++++++++++++++++++++++++Delete the Values++++++++++++++++++++++
//
it.only('should update the email address', (done) => {
console.log("email id");
chai.request(server)
.put('/admin/api/users/userProfile/' + 'userId')
.set('cid', '0000')
.send({
"email": "new@test.com"
})
.end((err, res) => {
if (err) {
console.log("eroor");
console.error(err);
}
res.should.have.status(200);
done(); //
});
});
// ++++++++++++++++++DB CleanUp++++++++++++++++++++++++++
after(function(done) {
if (mockgoose.helper.isMocked() === true) {
console.log("is status true");
mockgoose.helper.reset().then(() => {
server.close();
done();
});
}
});
});
});
via sam
No comments:
Post a Comment