Дополнительные проблемы с цепочкой при запуске теста с помощью jest

#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. Изменение «цели» было тем, что сделало это для меня. Спасибо!