Jest не может разобрать TSX в preact - PullRequest
1 голос
/ 22 февраля 2020

Я пытаюсь запустить тесты с Jest и энзимом в приложении Preact с TypeScript.

Я получаю Jest с неожиданной ошибкой токена:

FAIL  src/app/app.test.tsx
  ● Test suite failed to run

    Jest encountered an unexpected token

    This usually means that you are trying to import a file which Jest cannot parse, 
     e.g. it's not plain JavaScript.
...
    Details:

    src/app/app.test.tsx:10
        const wrapper = enzyme_1.mount(<app_1.default optOutUrl="none"/>);
                                       ^

    SyntaxError: Unexpected token <

    at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1059:14)

После просмотра Пример TypeScript в этом репозитории, я меняю опцию jsx, чтобы реагировать в tsconifg.json. Но это не полезно для среды моего проекта:

Cannot find module 'react' from 'styled.js'

    However, Jest was able to find:
        './styled.js'
        './styled.js.flow'
        './styled.js.map'

    See https://jestjs.io/docs/en/configuration#modulefileextensions-array-string

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:276:11)
      at Object.<anonymous> (node_modules/linaria/src/react/styled.js:3:15)

В приведенной выше ошибке говорится, что в файле, связанном со стилизованным компонентом, произошел сбой реагирования. (Я использую стилизованные компоненты из linaria/react с пользовательским Preact, набирающим .) Эта проблема не возникает в среде разработки и производства.

Я также пытался использовать babel-jest с приведенным ниже конфигом.

“transform”: {
      “^.+\\.t(s|x)$”: “babel-jest”
    }
 FAIL  src/app/app.test.tsx
  ● Test suite failed to run

    src/app/app.tsx: Cannot find module 'react'
...