У меня проблема с промежуточным ПО заглушки.В моем приложении у меня есть приложение nodejs express, которое использует экспресс-маршрут:
class App{
constructor(){
this.app = express();
...
...
this.app.use('/api/user', userRouting);
}
}
export default App;
Этот userRouting использует промежуточное ПО, которое я хочу подписать.
В моем тестовом каталоге у меня есть следующие файлы:
- brandRouting.js
- userRouting.js
Все хорошо работает без файла brandRouting.
Файл userRouting.js:
describe('user routing test', () => {
before(()=>{
sinon.stub(tokenService, 'verifyToken').callsFake(function(req, res, next) {
return next();
});
App = require('../../src/app');
server = new App.default().app.listen(3000);
after(()=>{
sinon.restore();
server.close();
});
it('should create user', (done)=> {
sinon.stub(userController, 'createUser').resolves('user created');
chai.request(server)
.post('/api/user')
.end((err, res) => {
expect(res.text).to.be.equal('user created');
done();
});
});
});
Проблема возникает, когда я включаю тесты в brandRouting.js.Он запускается до пользовательских тестов, а заглушка промежуточного программного обеспечения в userRouting не работает, ведет себя нормально.
describe('brand routing test', () => {
before(()=>{
App = require('../../src/app');
server = new App.default().app.listen(3000);
after(()=>{
sinon.restore();
server.close();
});
});