MochaJS: Отклоненные обещания не приводят к провалу теста - PullRequest
0 голосов
/ 20 ноября 2018

Я использую синтаксис async-await с Mocha и Supertest.Это мой проблемный тест:

it('Test POST/friends route: should add a friendship', async function () {       
    const lastFriendship =   await models.Friendship.findAll({limit: 1,where: {},order: [ [ 'createdAt', 'DESC' ]]})
    const lastFriendId = lastFriendship[0].id

    await request(app)
        .post('/friends')
        .set('Authorization', token)
        .send({ friendId: 998 })
        .expect(200)
        .expect(async (res) => {
            console.log('res.data', res.body.data.id)
            const newFriendId = res.body.data.id
            expect(res.body.data.friendId).toEqual(998)
            expect(res.body).toHaveProperty('error', null);
            expect(newFriendId - lastFriendId).toBe(2)//This should fail the test.
        })        
})

Последнее утверждение, как оно написано сейчас, должно провалиться, но вместо этого я получаю эту ошибку:

UnhandledPromiseRejectionWarning: Ошибка: ожидание(получено) .toBe (ожидается) // Object.is равенство

Я попытался поместить все это в блок try-catch, но безуспешно.Я явно что-то упускаю из-за механики.

Что не так с моим кодом?

РЕДАКТИРОВАТЬ: удаление «асинхронного» из функции обратного вызова ожидаемого, решает, хотя я нене знаю, почему исключение в обратном вызове не попадает сюда.

1 Ответ

0 голосов
/ 20 ноября 2018

Я думаю, вам нужно проанализировать ваше res.body как JSON.

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