jest test не может импортировать цезий с помощью приложения create react и craco

Я использую приложение create response с craco и craco-cesium для загрузки цезия в свой проект. Я пытаюсь настроить шутку, чтобы начать создавать тесты, но проблема в том, что Цезий использует requireJS.

Я добавил в свой package.json

  // package.json

  ...
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts"
    ],

    "globalSetup": "<rootDir>/setupTests.js"
  }
  ...

на основе тикета, открытого здесь: https://github.com/facebook/jest/issues/1914

Я настраиваю setupTests.js со следующим кодом:

// setupTests.js
module.exports = async () => {
  var cesium = require('cesium');
  process.$Cesium = cesium
};

и у меня есть первый базовый тест на корректный рендеринг:

// App.test.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

it('renders without crashing', () => {
  const div = document.createElement('div');
  ReactDOM.render(<App />, div);
  ReactDOM.unmountComponentAtNode(div);
});

однако я получаю ошибку в одном из моих представлений внутри <App /> компонент со следующим кодом:

import Cesium from "cesium";
...
TypeError: Cannot read property 'Ion' of undefined
...
Cesium.Ion.defaultAccessToken = '...';

сообщение Цезия как неопределенного при вызове его функций. Я пытался использоватьjest.config.js для шутки, чтобы получить конфигурацию оттуда с помощью следующего кода:

// jest.config.js
const { createJestConfig } = require("@craco/craco");

const cracoConfig = require("../craco.config.js");
const jestConfig = createJestConfig(cracoConfig);

module.exports = jestConfig;

но приложение create response не принимает этот файл, поэтому я не могу попробовать это, чтобы проверить, будет ли это работать.

1 ответ

столкнулся с такой же проблемой.

Обновление react-scriptsдо версии 4.0.1 и @craco/craco@до версии 6.0.0, похоже, решили эти проблемы, и теперь jest распознает все импорты из цезия. Никаких других файлов конфигурации не требовалось.

Другие вопросы по тегам