呼び出された関数で、pouchDB の「put」関数をスタブしようとしていますが、失敗しています。
私のDB機能-
var PouchDB = require('pouchDB')
var PendingDB = new PouchDB("")
module.exports.addPendingRequest = function(doc, callback){
PendingDB.put(doc, function(err, result){
if(err) {
console.log("Error in PendingDB: addPendingRequest");
console.log(err);
callback(err, null);
}
callback(null, result);
});
console.log("after put: inside addPendingRequest");
}
私のテスト関数:
var expect = require("chai").expect;
var PendingDB = require("../../lib/administration/PendingDB");
var PouchDB = require('pouchDB');
var sinon = require('sinon');
describe('Testing adding a request', function(){
it('should save the request with email', function(done){
var req = {
_id : "test@email.com",
first_name: "firstTest",
last_name: "test",
id: "test@email.com",
justif: "Testing Purposes",
}
var res = {};
var next = null;
console.log("after req, res, next");
var testOutput = {
success : "success"
};
console.log("after testOutput is set");
var PendingDBTest = sinon.stub(PouchDB.prototype, 'put', function(err, result){
console.log("in stub addReq");
});
console.log("after sinon.stub");
expect(function(){
PendingDB.addPendingRequest(req, function(err, response){
console.log("response");
console.log(response);
});
}).to.not.throw(Error);
expect(PendingDBTest.called).to.equal(true);
PendingDBTest.restore();
done();
})
})
Console: req, res の後、次は testOutput が設定された後、sinon.stub の後 put の後: addPendingRequest 内
したがって、 PendingDB.put は入力されず、私のテスト PendingDBTest.called は false を返すため、失敗します。