Обработка синтаксиса загрузчика веб-пакетов с помощью Jest testing: exclamation raw-loader - PullRequest
0 голосов
/ 03 августа 2020

Мой проект React отлично работает. Некоторым файлам нужен raw-загрузчик, и я не хочу выгружать проект. Итак, у меня есть импорт raw-loader, например:

import blank_md from '!!raw-loader!./assets/blank.md.txt';

Но шутка умирает с ошибкой

Cannot find module '!!raw-loader!./assets/blank.md.txt' from ...

Это похоже на Jest issue 4868

После добавления jest-raw-loader я попытался добавить в конфигурацию Jest:

"transform": { "^!!raw-loader!.*": "jest-raw-loader" }

, но без игральных костей.

Использование насмешек тоже подойдет.

1 Ответ

0 голосов
/ 04 августа 2020

Мне удалось использовать опцию Jest moduleNameMapper , чтобы Jest «использовал» фиктивные файлы.

Хорошая новость в том, что тесты Jest теперь работают.

Плохая новость заключается в том, что Jest все еще не знает, как загружать файлы, поэтому он предоставляет приложению имя файла (вместо содержимого файла). Это нормально для моих тестов, но не оптимально.

Вот некоторые из рабочих настроек, которые я использую. Устанавливаю их в пакете. json файл:

"jest": {
  "setupFiles": ["<rootDir>/src/tests/setup-register-context.js"], 
  "moduleNameMapper": {
    "^!!raw-loader!.*sdkExamples.*txt": "<rootDir>/src/tests/__mocks__/templateMock.txt",
    "^!!raw-loader!\\./toolbox.xml": "<rootDir>/src/tests/__mocks__/xmlMock.xml",
    "^!!raw-loader!.*/assets/startBlocks.xml": "<rootDir>/src/tests/__mocks__/xmlMock.xml",
    "!!raw-loader!.*md\\.txt": "<rootDir>/src/tests/__mocks__/mdMock.md"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...