Des idées sur ce code
jest.useFakeTimers()
it('simpleTimer', async () => {
async function simpleTimer(callback) {
await callback() // LINE-A without await here, test works as expected.
setTimeout(() => {
simpleTimer(callback)
}, 1000)
}
const callback = jest.fn()
await simpleTimer(callback)
jest.advanceTimersByTime(8000)
expect(callback).toHaveBeenCalledTimes(9)
}
''
Échec avec
Expected mock function to have been called nine times, but it was called two times.
Cependant, si je supprime await
de LINE-A, le test réussit.
Est-ce que Promise et Timer ne fonctionnent pas bien?
Je pense que la raison peut-être que la plaisanterie attend la deuxième promesse pour se résoudre.