From 85aaf5552d97c230d4569f45af6ffd14cecab676 Mon Sep 17 00:00:00 2001 From: Winnie Hellmann Date: Mon, 8 Jul 2019 13:15:32 +0200 Subject: Fail for pending timers in Jest --- spec/frontend/test_setup.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/frontend/test_setup.js b/spec/frontend/test_setup.js index 15cf18700ed..a81a4e4b4f4 100644 --- a/spec/frontend/test_setup.js +++ b/spec/frontend/test_setup.js @@ -18,7 +18,19 @@ afterEach(() => // give Promises a bit more time so they fail the right test new Promise(setImmediate).then(() => { // wait for pending setTimeout()s - jest.runAllTimers(); + for (let i = 0; i < 3; i += 1) { + jest.runOnlyPendingTimers(); + jest.runAllTicks(); + jest.runAllImmediates(); + } + + const numPendingTimers = jest.getTimerCount(); + if (numPendingTimers > 0) { + jest.clearAllTimers(); + throw new Error(`There are ${numPendingTimers} pending timers left. Make sure to run or clear them. + +see also https://jestjs.io/docs/en/timer-mocks`); + } }), ); -- cgit v1.2.1