Как получить значения окон в тестах с помощью Enzyme, Jest + Create React App - PullRequest
0 голосов
/ 06 февраля 2019

Из-за процесса сборки, который я использую, чтобы вытолкнуть свое приложение, я передаю некоторые переменные окружения в файл после сборки, что прекрасно работает.Однако он ломает мои тесты следующим сообщением об ошибке:

TypeError: Cannot read property 'DATA' of undefined

  57 |   Auth: {
  58 |     oth,
> 59 |
     | ^
  60 |    
  61 |     identity: checkEnv(window.env.DATA,
  62 |       process.env.REACT_APP_DATA), 

Я перепробовал много решений, но еще не смог издеваться над данными window.env, как мне это сделать?

1 Ответ

0 голосов
/ 06 февраля 2019

Create React App позволяет вам инициализировать среду тестирования , включив файл src/setupTests.js, который "будет автоматически выполнен перед выполнением ваших тестов".

Приложение Create React также устанавливает среду тестирования с jsdom, который предоставляет глобальный объект window.

Вы можете установить window.env в src/setupTests.js, и он будет доступен во время ваших тестов:

src / setupTests.js

window.env = {
  DATA: 'hi'
}

src / code.js

export const getData = () => window.env.DATA

код / ​​код.test.js

import { getData } from './code';

test('env', () => {
  expect(getData()).toBe('hi');  // SUCCESS
})
...