Друзья,
В Jest если сделать так:
Date.now = jest.fn().mockReturnValue(1000);
внутри одного
test(...)
, то во всех последующих
test(...)
вызов
Date.now()
так и будет возвращать 1000, вместо результата работы оригинального метода
Date.now()
.
Есть четыре опции Jest:
- clearMocks
- resetMocks
- resetModules
- restoreMocks
Ни одна из них ожидаемого результата не приносит. Одна лишь сбрасывает такие методы, но вместо родной реализации они начинают возвращать undefined, т.е. нормальной даты на выходе больше не будет.
Вопрос, как сделать это красиво, без хранения ссылки на оригинальный метод в переменной, и отката ссылки на метод глобального модуля после каждого теста?
Насколько я понимаю, под каждый тест должно настраиваться окружение, т.е. каждый тест должен быть в песочнице, но пока таких опций в Jest не нашел (extraGlobals похоже, но не оно, насколько я понимаю).