core-ds/arui-scripts

Запуск jest с дефолтным setup файлом

Closed this issue · 4 comments

При апгрейде с arui-scripts@10.5.0 до @14.0.0 возникла проблема при запуске тестов jest.
image

Мой конфиг jest:

"jest": {
    "preset": "arui-scripts"
 }

Воспроизводится при следующих зависимостях:

arui-scripts@14.0.0
NodeJS 16.16.0

Проблема кроется в следующей строчке:
https://github.com/core-ds/arui-scripts/blob/master/packages/arui-scripts/src/configs/jest/setup.js#L6
При этом, я даже не использую enzyme в своих unit-тестах. И, закомментировав эту строчку, все работает нормально.
Хочется понять, нужна ли эта строчка вообще, нужно ли мне установить какую-то доп зависимость или проблема в других местах моего проекта?

Хуже всего то, что тесты даже не валятся, а "проходятся" успешно, даже не выполняясь.

Та же проблема при миграции с 13 версии
Но я даже не обратил внимания на то, что тесты не выполняются)

  1. Нужно прописать настройки в проекте для Jest:
  "jest": {
    "preset": "arui-scripts",
    "testEnvironment": "jsdom",
    "setupFilesAfterEnv": [
      "./__tests__/setup.ts"
    ],
   ...
}
  1. Для Jest v26, c arui-scripts < 14.0.0 установить в devDependencies
    "jest-environment-jsdom": " 26.6.2",
    Для Jest v28, c arui-scripts > 14.0.0
    "jest-environment-jsdom": " 28.1.3",
  2. Содержание файла ./__tests__/setup.ts
import { configure } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';

configure({ adapter: new Adapter() });
window.React = require('react');
  1. Установить в devDependencies "@wojtekmaj/enzyme-adapter-react-17": "0.8.0" при использовании React 17
    Если используется в React v16, то можно не указывать setupFilesAfterEnv и не устанавливать @wojtekmaj/enzyme-adapter-react-17

@andreynovikov95 что-то странное количество телодвижений нужно, чтобы заработал дефолтный setupFile. Он должен работать без установки доп. пакетов, или же эти доп пакеты должны быть включены в peerDependencies, а доп конфиги по умолчанию стоять в конфге jest в arui-scripts.
Так получается, что предложенное решение - просто "заглушка"

думаю да, jest-environment-jsdom можно было бы добавить в arui-scripts с "testEnvironment": "jsdom". По поводу адаптера, тут от проекта зависит, какую версию React используют