Решение
Jest по умолчанию работает с JSDom ^15.1.1
(начиная с 17 февраля 2020 г. ), поэтому вам придется обновить вручную, чтобы использовать JSDom 16.2.0
при установке jest-environment-jsdom-sixteen
.
Сначала установите новейшую среду JSDom для Jest
npm i jest-environment-jsdom-sixteen --save-dev
и измените package.json
на:
"scripts": {
"test": "jest --env=jest-environment-jsdom-sixteen"
},
Это обеспечит работу Jest. правильная среда.
Вам также необходимо убедиться, что Babel правильно обрабатывает встроенные классы (например, class HTMLElement {}
), установив babel-plugin-transform-builtin-classes
, например:
npm i babel-plugin-transform-builtin-classes --save-dev
И добавил на ваш .babelrc
следующий
"plugins": [
["babel-plugin-transform-builtin-classes", {
"globals": ["Array", "Error", "HTMLElement"]
}]
]
Do not install babel-plugin-transform-es2015-classes
, поскольку это уже является частью ядра Babel 7, согласно этой проблеме
Рабочий сокращенный тестовый набор доступен здесь .