Почему я получаю uncaughtException вместо AssertionError при оценке неверного статуса http? - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь понять, как правильно протестировать экспресс-приложение с помощью 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 в целом, поэтому любая помощь приветствуется!

...