Как создать вложенный moduleNameMapper в Jest? - PullRequest
0 голосов
/ 25 июня 2019

Мой упрощенный jest.config.js:

module.exports = {
  preset: "ts-jest",
  collectCoverage: true,
  collectCoverageFrom: [
    "src/**/*.ts",
    "!**/node_modules/**",
    "!src/config/*.ts",
    "!build/**/*"
  ],
  coverageReporters: ["text"],
  reporters: ["default"],
  moduleDirectories: [
    "src",
    "node_modules"
  ],
  moduleNameMapper: {
    "@helpers/(.*)": "<rootDir>/src/helpers/$1", <---- question about this
  },
  globals: {
    'ts-jest': {
      diagnostics: {
        pathRegex: /\.(spec|test)\.ts$/,
        ignoreCodes: [6133]
      }
    }
  },
  verbose: true,
  roots: ["src"],
  moduleFileExtensions: ["ts", "tsx", "js", "jsx"]
};

ModuleNameMapper отображает на любой уровень вложенных путей:

  • @ хелперы / Foo
  • @ хелперы / Foo / Foo
  • и т.д ...

Я использую его в своих тестах, как import foo from "@helpers/foo/foo";

Однако я получаю эту ошибку:

Не удалось найти модуль @helpers/foo, отображенный как: /<PATH>/src/helpers/foo

Не нашел ничего в документации по вложенным путям. Я предположил, что, поскольку @helpers/(.*) является регулярным выражением, это должно работать "из коробки".

Что я делаю не так? Может быть, это ошибка?

...