Не удается получить доступ к свойствам окна при запуске тестов с Jest - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь получить доступ к свойству, которое находится в window.sunpietro.config свойство. При выполнении тестов с Jest я получаю TypeError: Cannot read property 'config' of undefined.

Мой тестовый код выглядит следующим образом:

import React from 'react';
import { render, cleanup } from 'react-testing-library';
import MyModule from '../my.module';
import { myConfigMock } from '../../../../jest.window.mock';

afterEach(cleanup);
beforeEach(() => {
    window.sunpietro = { ...myConfigMock };

    // window.sunpietro.config = {};
});

describe('MyModule', () => {
    test('The module renders correctly', () => {
        const { getByTestId } = render(<MyModule />);

        getByTestId('my-tabs').toBeDefined();
        getByTestId('my-panels').toBeDefined();
    });
});

Я использую последнюю версию Jest: 24.7.1 и react-testing-library версию: 6.1.2.

Как можно смоделировать свойства window, чтобы они были доступны экземпляру MyModule?

1 Ответ

3 голосов
/ 17 апреля 2019

Вы можете установить глобальные переменные в вашей настройке. У меня есть файлы setupFiles, объявленные в моем package.json

"jest": {
"setupFiles": [
  "<rootDir>/tests/shim.js",
  ...
],

Тогда в моем shim.js. Я объявляю свойства окна глобальными, как

global.sunpietro : {
 ...
}
...