Jest - Как использовать импорт корневого слэша с помощью babel-jest?

Я использую Babel Jest для транспиляции моего кода в целях тестирования. Я не могу понять, как использовать путь относительно корня проекта.

Например, если в тестовом файле я импортирую модуль с: /imports/ui/myModule Jest выдает ошибку

Cannot find module 
'/Users/me/dev/myProject/Users/me/dev/myProject/imports/ui/myModule' from 'test.jsx'`

Но если я импортирую модуль с относительным путем, например: ../../ui/myModule, он работает.

My .babelrc:

{
  "plugins": [
    "transform-decorators-legacy",
    "transform-class-properties",
    "babel-root-slash-import"
  ],
  "presets": [
    "es2015",
    "react",
    "stage-0"
  ],
  "env": {
    "test": {
      "plugins": [
        "transform-decorators-legacy",
        "transform-class-properties",
        "babel-root-slash-import"
      ],
      "presets": [
        "es2015",
        "react",
        "stage-0"
      ]
    }
  }
}

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

  "jest": {
    "roots": ["<rootDir>/imports/tests/jest"]
  },

person dagatsoin    schedule 27.02.2017    source источник


Ответы (1)


Например, вы можете использовать _1 _ вариант конфигурации.

// package.json
{
  "jest": {
    "roots": ["<rootDir>/imports/tests/jest"]
  },
  "moduleNameMapper": [
    "^ui/(.*)$": "<rootDir>/imports/ui/$1"
  ]
}

// test.jsx
import myModule from 'imports/ui/myModule';

Связанный ответ по SO: Тестирование с псевдонимами Jest и Webpack

Другой пример из официальной документации jest: https://facebook.github.io/jest/docs/en/webpack.html#configuring-jest-to-find-our-files

person Ilya Zub    schedule 11.05.2018