#reactjs #jestjs #babeljs #enzyme #babel-jest
#reactjs #jestjs #babeljs #фермент #babel-jest
Вопрос:
Я пытаюсь запустить тест с помощью Jest, и в настоящее время я использую jsx и tsx (переход с js на ts) в своем приложении react, но когда я запускаю свои тесты, все тесты jsx проходят успешно, за исключением тестов в tsx с дополнительной блокировкой. Я всегда получаю сообщение об ошибке Unexpected token
при вводе, которое выглядит как
...
<Input
value={parent?.child}
...
это моя конфигурация jest
{
"verbose": true,
"roots": [
"<rootDir>/app"
],
"setupFiles": [
"./config/webpack/jest/config.js"
],
"moduleNameMapper": {
"^components(.*)": "<rootDir>/app/javascript/components$1",
"^utils(.*)": "<rootDir>/app/javascript/utils$1",
"^types(.*)": "<rootDir>/app/javascript/types$1",
"\.(css|pcss|scss)$": "<rootDir>/spec/__mocks__/styleMock.js",
"\.(gif|ttf|eot|svg|png)$": "<rootDir>/spec/__mocks__/fileMock.js"
},
"snapshotSerializers": [
"<rootDir>/node_modules/enzyme-to-json/serializer"
],
"testRegex": "(/__tests__/.*|\.(test))\.(ts|tsx|js|jsx)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx"
],
"transform": {
"\.[jt]sx?$": "babel-jest"
}
}
В чем может быть проблема, как я могу работать с дополнительными цепочками и jest?
Ответ №1:
Для меня проблема заключалась в том, что в моем tsconfig.json
случае я использовал "lib": ["ES2020"]
, что противоречило моей версии узла. Изменение версии узла на v14 решило проблему.
Здесь вы найдете ссылку на целевые библиотеки с версиями узлов:
https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping
Ответ №2:
изменение tsconfig.json
использования "lib": ["ES2020"], "target": "ES2020"
также сработало для меня. Tks
Комментарии:
1. Изменение «цели» было тем, что сделало это для меня. Спасибо!