Как мокировать таймеры в Jest?

Middle
266 просмотров
AFK Offer AI

jest.useFakeTimers() заменяет setTimeout/setInterval/Date на подконтрольные аналоги. jest.runAllTimers() — синхронно выполняет все pending таймеры. jest.advanceTimersByTime(3000) — сдвигает время на 3 секунды. jest.runOnlyPendingTimers() — только текущие (не рекурсивные). Полезно для тестирования debounce, throttle, retry логики, TTL кэша. afterEach: jest.useRealTimers() восстанавливает. Для современного кода: jest.useFakeTimers({ now: new Date("2024-01-01") }) — фиксирует Date.now().

Следующий вопрос

Как использовать jest.each для параметризованных тестов?