Реакция JS Jest вызывает "SyntaxError: Неожиданный токен".
Теперь я использую JEST для проверки кода. Если компонент одинарный и не импортирует ничего, "npm test" работает плавно, и теперь я хочу протестировать несколько компонентов вместе, и я сразу получил эту ошибку:
SyntaxError: Unexpected token .
Кажется, всякий раз, когда реакция импортирует что-то другое, например:
require( './style/fixed-data-table.css' );
require( './style/jnpr-datatable.scss' );
а затем с помощью шутки бросает неожиданный токен ". ошибка.
В моих настройках должно быть что-то не так, но где? My Package.json содержит:
"jest": {
"unmockedModulePathPatterns": [
"<rootDir>/node_modules/react/",
"<rootDir>/node_modules/react-dom/",
"<rootDir>/node_modules/react-addons-test-utils/"
]
}
И.babelrc уже находится в корне. Также включен бутерброд. благодаря
Ответы
Ответ 1
Посмотрите на jest docs для интеграции webpack. Проблема в том, что jest can not работает с другим материалом, а затем js. Таким образом, вы должны издеваться над всеми файлами js, которые вы импортируете. Самый простой способ - настроить moduleNameMapper
в своих конфигурациях jest.
{
"jest": {
"moduleNameMapper": {
"\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js"
}
}
}
с __mocks__/styleMock.js
который выглядит следующим образом.
module.exports = {};
Ответ 2
Мне это сошло с рук, добавив эти две строки в мой файл .babelrc
{
"presets": ["env", "react"],
"plugins": ["transform-class-properties"]
}
и мой package.json выглядит так:
{
"name": "crud-redux",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.4.0",
"react-dom": "^16.4.0",
"react-scripts": "1.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "NODE_ENV=test jest",
"eject": "react-scripts eject"
},
"devDependencies": {
"babel-jest": "^18.0.0",
"babel-loader": "^6.4.1",
"babel-plugin-transform-decorators-legacy": "^1.3.5",
"enzyme": "^2.9.1",
"jest": "^23.1.0",
"react-addons-test-utils": "^15.6.2",
"react-test-renderer": "^15.6.2",
"redux-mock-store": "^1.5.1",
"webpack": "^1.15.0",
"webpack-dev-server": "^1.16.5"
}
}