Функции окна Stubbing в Jest

В моем коде я вызываю обратный вызов при нажатии "ОК" приглашения window.confirm, и я хочу проверить, вызван ли обратный вызов.

В sinon я могу заглушить функцию window.confirm с помощью:

const confirmStub = sinon.stub(window, 'confirm');
confirmStub.returns(true);

Есть ли способ, которым я могу достичь этой ступени в Jest?

Ответ 1

В шутку вы можете просто перезаписать их с помощью global.

global.confirm = () => true

Как и в шутке, каждый тестовый файл запускается в своем собственном процессе, вам не нужно устанавливать reset.

Ответ 2

Я просто использовал Jest mock, и он работает для меня:

   it("should call my function", () => {
      // use mockImplementation if you want to return a value
      window.confirm = jest.fn().mockImplementation(() => true)

      fireEvent.click(getByText("Supprimer"))

      expect(window.confirm).toHaveBeenCalled()
}