Jest тестирование класса в окне - PullRequest
0 голосов
/ 11 февраля 2020

Я супер потерян, как это сделать.

У нас есть класс в окне для Loqate с именем window.pca.Addresses

Затем в нашем коде мы запускаем этот фрагмент кода в методе реагирования:

const shippingControl = new pca.Address(shippingFields, { key: process.env.LOQATE_API_KEY });
window.setTimeout(() => {
  shippingControl.load();
}, 3000);

Мой вопрос заключается в том, как написать шутниковый тест, чтобы смоделировать класс Address в окне, а затем добавить метод load (), чтобы мы могли проверить, запущен он или нет.

Я пытался включить объект окна как глобальный и оконный, а также высмеивать его с помощью jest.mock (), который также не работает.

Мне интересно, может ли кто-нибудь еще подсказать мне, как это сделать?

Большое спасибо

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете добавить beforeEach к вашему тесту что-то вроде этого:

 beforeEach(() => {
    Object.defineProperty(window, "pca", {
      value: {
        Addresses: { load: jest.fn(() => null) }    
      },
      writable: true
    });
  });

Вы можете проверить, запущен ли он так:

expect(window.pca.Addresses.load).toHaveBeenCalledTimes(1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...