Я пытаюсь понять, как правильно протестировать экспресс-приложение с помощью chai-http.
Я пытаюсь написать модульный тест, чтобы проверить, возвращаются ли определенные ошибки http, но я сталкиваюсь с проблемой при написании следующего утверждения:
chai.use(chaiHttp);
const expect = chai.expect;
const app = express();
app.post('/', (req, res) => {
res.status(400).json({error : 'message'});
});
describe('testbench for chai-http', function() {
it('show me how this works', function(done) {
chai.request(app)
.post('/')
.send('bad payload')
.end(function(err, res) {
expect(err).to.have.status(500);
done();
});
});
});
Я ожидалвывод консоли должен быть примерно таким:
AssertionError: expected 500 but got 400 instead
.
Однако вместо этого я получил:
uncaughtException: expected [Error: Bad Request] to have status code 500 but got 400
с длинной трассировкой стека.Я заметил, что это происходит только с утверждениями внутри функции обратного вызова, которая находится внутри .end()
, поэтому я предполагаю, что это проблема с тем, как express взаимодействует с chai-http.Я искал похожие проблемы, но не смог их найти.Я довольно новичок в нодах и JavaScript в целом, поэтому любая помощь приветствуется!