Как тестировать модули ES6 с помощью Jest.
Пример:
sum.js
const sum = function (a, b) {
return a + b;
}
export default sum;
sum.test.js
import sum from './sum';
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});





Единственное требование - настроить среду test на Babel и добавить плагин преобразования es2015:
Шаг 1:
Добавьте среду test в .babelrc в корне вашего проекта:
{
"env": {
"test": {
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}
}
}
Шаг 2:
Установите плагин преобразования es2015:
npm install --save-dev @babel/plugin-transform-modules-commonjs
Вот и все. Jest автоматически включит компиляцию из модулей ES в CommonJS, без необходимости указывать дополнительные параметры для вашего свойства jest внутри package.json.
Ответ GarouDan - это не официально предлагаемое решение для модулей ES6, а вместо этого для сценариев Typescript. Это не одно и то же.
Хотя решение GarouDan включает поддержку машинописного текста, после предоставленной мной ссылки показана хорошо документированная реализация Jest ES6 без машинописного текста, на основе которой получено решение GarouDan. Изменения, необходимые для поддержки машинописного текста, незначительны, но я согласен, что это не имеет отношения к вопросу.
Приведенные выше решения не помогли мне. Я смог решить это:
yarn add --dev babel-jest @babel/core @babel/preset-env @babel/preset-typescript
babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
'@babel/preset-typescript'
],
};
где я использую машинопись.
этот ответ может быть устаревшим, ответ ГаруДана - официально предложенное решение