У меня есть простая функция, которая открывает новое окно внутри setTimeout и хочу проверить, что это открытое окно было вызвано.
export function foo() {
setTimeout(() => {
window.open('http://google.com');
}, 0);
}
describe('foo', () => {
beforeEach(() => {
jest.useFakeTimers();
global.open = jest.fn();
});
it('calls open', () => {
foo();
expect(setTimeout).toHaveBeenCalledTimes(1);
expect(global.open).toBeCalled(); //FAILING
});
});
В настоящее время мои ожидания не оправдываются: «Ожидается, что была вызвана фиктивная функция». Мокание window.open выглядит нормально, когда тест проходит, когда я удаляю setTimeout из своей функции.
Просто интересно, сможет ли кто-нибудь направить меня в правильном направлении. Заранее спасибо.