Я пытаюсь настроить заглушку промежуточного программного обеспечения с помощью Sinon в моем приложении Node.
Когда я запускаю тест мокко и указываю прямо на файл теста, он корректно заглушается. Когда я указываю на всю свою папку для тестирования и рекурсивно запускаю тесты, она не заглушает промежуточное ПО и дает сбой.
Структура файла:
test
functional
checklist
test.spec.js
lib
middleware
auth.js (this is what is being stubbed out)
test.spec.js
const chai = require('chai');
const chaiHttp = require('chai-http');
const sinon = require('sinon');
chai.use(chaiHttp);
const should = chai.should();
// Requirements
const auth = require('../../../lib/middleware/auth')
describe('/checklist/checklistItemLevel',function() {
let checkTokenStub;
beforeEach(function(){
checkTokenStub = sinon.stub(auth,'checkToken').callsFake((req,res,next)=>{
console.log('Stubbed')
next()
});
})
afterEach(function(){
auth.checkToken.restore();
})
context('/ POST',function() {
it('should return hello',function(done){
chai.request(require('../../../server'))
.post('/api/v1/checklist/checklistItemLevel')
.end((err,res)=>{
res.should.have.status(200);
res.text.should.be.eql('Hello');
done(err);
})
})
})
})
router.js
const router = require('express').Router();
const controller = require('./controller')
const auth = require('../../../lib/middleware/auth')
router.post('/',auth.checkToken,(req,res,next)=>{
res.send('Hello');
});
module.exports = router;
Мокко Звонит
mocha "**/*.spec.js" // <- Doesnt stub out middleware
mocha "test/functional/checklist/*.spec.js" // <- Stubs out successfully