Есть ли способ настроить глобальные переменные в качестве цели для "moduleNameMapper" в Jest? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть приложение angular, которое импортирует из другого пакета, например так:

import { Logger } from '@myorg/cif-core';

Пакет просто предоставляет связанный файл js, который устанавливает глобальную переменную как myorg-cif-core. Поэтому у нас есть следующая внешняя конфигурация в webpack.config.js:

module.exports = {
  externals: {
    '@myorg/cif-core': 'myorg_cif_core'
};

Я хочу сейчас переключиться с Karma на Jest и столкнуться с проблемами, так как это не может разрешить импорт из @myorg/cif-core.

Я попытался импортировать пакет в файл test-setup.ts, чтобы он присутствовал в тестах

import 'node_modules/@myorg/cif-core/bundles/cif-core.min.js';

и определил имена переменных в jest.config.js

moduleNameMapper: {
  '@myorg/cif-core': 'myorg_cif_core'
},

Однако, похоже, что-то не так, поскольку я всегда получаю следующую ошибку:

Configuration error:

Could not locate module @myorg/cif-core mapped as:
myorg_cif_core.

Please check your configuration for these entries:
{
  "moduleNameMapper": {
    "/^@myorg\/cif-core/": "myorg_cif_core"
  }
}

Я также уже пробовал некоторые другие варианты, как определение глобальных переменных в jest.config.js, но с не повезло. :( Есть ли способ заставить это работать? Из того, что я нашел, посмотрев в Google и посмотрев код здесь https://github.com/facebook/jest/blob/aa64672e728738926571746a85c57d1658bdaf55/packages/jest-resolve/src/index.ts кажется, что это вообще не поддерживается - по крайней мере, не с moduleNameMapper.

Я что-то не так делаю? Или есть другой способ решить эту проблему?

Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...