Получение шутки для преобразования только определенных типов файлов в модуле - PullRequest
0 голосов
/ 25 марта 2020

В настоящее время у меня есть проект, который использует шутку для модульного тестирования. Проблема, с которой я сталкиваюсь, заключается в том, что одному из модулей зависимостей требуется файл. css:

./node_modules/problem-module/dist/problem-module.js:

  line 0: require("./problem-module.css");

Я настроил jest так, чтобы он не игнорировал указанный модуль c для преобразования, исправляя проблему с помощью CSS требуется. Хотя теперь тест не работает, потому что jest пытается также преобразовать все файлы. js в модуле с помощью babel-jest, которые ранее были проверены через babel до публикации модуля. что приводит к ошибке, похожей на:

TypeError: (0 , problemModuleFunction.default) is not a function

Моя конфигурация шутки:

  "jest": {
    "testEnvironment": "jsdom",
    "testMatch": [
      "<rootDir>/src/**/*.test.js"
    ],
    "moduleDirectories": [
      "<rootDir>/src",
      "<rootDir>/node_modules"
    ],
    "moduleNameMapper": {
      "\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js",
      "\\.(jpg|gif|ttf|eot|svg)$": "<rootDir>/__mocks__/fileMock.js"
    },
    "transform": {
      "^((?!mock).)*.(js|jsx)$": "babel-jest",
      "\\.(css|styl|less|sass|scss)$": "<rootDir>/node_modules/jest-css-modules-transform"
    },
    "transformIgnorePatterns": [
        "node_modules/(?!(problem-module))"
    ],
    "setupFilesAfterEnv": [
      "<rootDir>/setupTests.js"
    ],
    "moduleFileExtensions": [
      "css",
      "scss",
      "js",
      "json",
      "jsx"
    ]
  },

Каков наилучший способ убедиться, что файлы CSS из этого модуля сопоставлены правильно без преобразования каких-либо файлов JS?

...