Я создал приложение в node.js, которое дает мне интерфейс websocket, используя пакет 'ws' из npm на сервере. Теперь я хочу проверить этот интерфейс с шуткой. Тест проходит успешно, но Jest не завершился и выдает ошибку «Jest не завершил свою работу через одну секунду после завершения теста». и застревает.
Я прочитал документацию и обнаружил, что мне нужно использовать параметр «done» в тесте и вызывать его, когда тест закончен.
Сервер будет запущен в функции beforeAll и остановлен в функции afterAll, заданной jest.
describe('app', () => {
it('connect websockets response', (done) => {
expect.assertions(1);
new WebSocket(`ws://localhost:${port}`)
.on('message', (msg) => {
expect(JSON.parse(msg).id).toEqual(0);
done();
})
});
});
Я ожидаю, что шутка прекратится успешно после завершения теста.