Я пытаюсь покрыть базовый редуктор тестом, но он выдает ошибку для экспорта в моем файле констант:
FAIL jest/spec/reducers/RootReducer.spec.js
● Test suite failed to run
Jest encountered an unexpected token
Details:
project-root\js\src\constants\ActionTypes.js:2
export const LOCALE_REQUEST = 'ROOT/LOCALE_REQUEST';
^^^^^^
SyntaxError: Unexpected token export
1 | 'use strict';
2 |
> 3 | import { LOCALE_REQUEST_SUCCESS, ROUTING_REQUEST_SUCCESS } from '/js/src/constants/ActionTypes';
| ^
4 |
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
at Object.<anonymous> (jest/spec/reducers/RootReducer.spec.js:3:1)
Я запускаю тесты из папки 'project-root \ tests'
js-файлы, которые я хочу протестировать, находятся в папке 'project-root \ js'
Я считаю, что это является причиной ошибки. Поскольку файл, который я пытаюсь импортировать, находится вне папки tests , похоже, он не переносится
это мой package.json :
{
"name": "jest",
"version": "0.0.0",
"scripts": {
"test": "jest"
},
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
"@babel/preset-env": "^7.2.3",
"babel-core": "7.0.0-bridge.0",
"jest": "^23.6.0"
}
}
это .babelrc :
{
"presets": [
"@babel/preset-env"
],
"plugins": [
"@babel/plugin-transform-modules-commonjs"
]
}
это jest.config.js :
module.exports = {
verbose: true,
transform: {
"^.+\\.jsx?$": "babel-jest"
},
bail: true,
browser: true,
cacheDirectory: '/tmp/jest',
collectCoverage: false,
roots: [
'<rootDir>/../js',
'<rootDir>/jest'
],
moduleNameMapper: {
'^(.*)/js/(.*)$': '<rootDir>/../js/$2'
},
testRegex: '(jest/spec/.*|(\\.|/)(test|spec))\\.js$',
testPathIgnorePatterns: [
'<rootDir>/node_modules'
],
transformIgnorePatterns: [
'/node_modules/'
]
};
Поэтому я попытался найти похожие случаи в Интернете, но в большинстве случаев проблемы возникают из-за / node_modules или чего-то, что отсутствует в конфигурации jest. Но я не могу найти, что не так в моем случае, буду очень признателен за любые подсказки, что я могу попробовать
up: кто-то предложил мне добавить babel-jest в мой package.json , но он уже находится в / node_modules - он добавляется с jest пакет