Mocha и supertest: «Для асинхронных тестов и хуков, убедитесь, что вызывается« done () »; при возврате Promise убедитесь, что он разрешается» ошибка при использовании async await - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь проверить маршрут в своем приложении, которое занимается регистрацией нового пользователя. Сначала тест должен удалить все записи из коллекции (это тестовая база данных), а затем вызвать фактический маршрут. Это код:

it('Test POST/register route', async () => {

        await User.deleteMany({})//Calling Mongoose method to first remove all records.

        await request(app)
            .post('/register')
            .send({ email: 'yoyo@gmail.com', password: 1234 })
            .expect(200)
            .expect((res) => {
                expect(res.body).toHaveProperty('error', null);                      
                const { id } = res.body.data;
                expect(typeof id).toBe('string');                   
            })        
 })

Когда я запускаю это, я получаю сообщение об ошибке: «Для асинхронных тестов и перехватов убедитесь, что вызывается« done () »; если вы возвращаете Promise, убедитесь, что он разрешен».

Это работает отлично, как только я удаляю оператор "await User.deleteMany ({})".

Может кто-нибудь сказать мне, что не так с моим кодом?

Изменить: проблема была в том, что фактическое время, необходимое для завершения теста. как только я использую this.timeout (0), он проходит.

...