Результаты подстали Mocha отличаются в зависимости от пути к файлу - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь настроить заглушку промежуточного программного обеспечения с помощью 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

1 Ответ

0 голосов
/ 02 апреля 2019

Нашел ответ. Мокко работает нормально. Но приложение кэшируется другим тестовым примером, поэтому оно работает без заглушек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...