Я пишу тест Jest для кода, который зависит от библиотеки websocket.Отключить Jest setTimeout mock
В библиотеке веб-раскладок издеваются. Я хочу отправить сообщение, дождаться завершения асинхронных действий и проверить ответ.
it('sends a message and gets a response',() => {
processor(ws).sendMessage() // do a bunch of async stuff, call websocket.sendMessage()
setTimeout(() => {
expect(ws.getResponse()).toEqual('all done')
}, 100)
})
К сожалению, поскольку Jest mocks setTimeout, setTimeout терпит неудачу. Если я запустил jest.runAllTimers()
, тайм-аут произойдет мгновенно, поэтому вы не получите сообщение.
Любая идея, как убедить шутить, чтобы разблокировать setTimeout или обходное решение Jasmine?
Jest 15 появляется, чтобы отключить таймер иронизирует по умолчанию http://facebook.github.io/jest/blog/2016/09/01/jest-15.html –