Не удается найти объявленный модуль при выполнении модульного теста Jest - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь протестировать компонент веб-части spfx и получаю следующую ошибку:

Test suite failed to run

    Cannot find module 'WebPartContentStrings' from 'WebContentContainer.tsx'

Я кое-что копал и обнаружил, что внутри своего компонента я делаю следующее:

import * as strings from "WebPartContentStrings";

И у меня есть этот файл:

declare module 'WebPartContentStrings' {
  const strings: IWebPartContentStrings;
  export = strings;
}

Однако кажется, что когда я издеваюсь над компонентом, Jest не может правильно интерпретировать инструкцию импорта и не может найти модуль, даже если приложение может найти его, когда я размещаю это на сервере. Есть ли способ импортировать строки другим способом для Jest?

1 Ответ

0 голосов
/ 23 марта 2020

У меня была такая же проблема. Это нужно исправить, когда свойство «реагировать» на свойство «jsx» в tsconfig. json.

Например:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "jsx": "react",
    "types": ["jest", "node"],
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "strict": true,
    "noEmit": true,
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "isolatedModules": true,
    "resolveJsonModule": true
  },
  "exclude": [
    "node_modules"
  ],
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ]
}
...