по сути, чтобы заставить Jest хорошо играть с приложением, работающим на JSPM/SystemJS, вам нужно «научить» его всем сопоставлениям, которые он содержит в файле config.js (или, как бы вы ни называли System.config())
длинный ответ заключается в том, что вам нужно создать запись для каждой зависимости, которую вы установили с помощью JSPM, например:
//jest configuration
moduleNameMapper: {
...
"^redux$": "[email protected]",
...
}
для каждого вашего псевдонима вам нужна хотя бы одна запись:
moduleNameMapper: {
...
"^common\\/(.*)": "<rootDir>/src/common/$1", //for a dir alias
"^actions$": "<rootDir>/src/actions/index", //for a file alias
...
}
вам также необходимо иметь эти сопоставления в вашем nodeNameMapper:
moduleNameMapper: {
...
"^npm:(.*)": "<rootDir>/jspm_packages/npm/$1",
"^github:(.*)": "<rootDir>/jspm_packages/github/$1",
...
}
и, наконец, вам нужна эта конфигурация moduleDirectories:
moduleDirectories: ["node_modules", "jspm_packages/npm", "jspm_packages/github"]
это не очень практично, потому что вы не хотите хранить две копии всех ваших реестров зависимостей и должны синхронизировать их при изменении...
так что краткий и лучший ответ, вы используете мой gulp-jest-jspm :)
даже если вы не используете gulp, вы можете использовать его метод getJestConfig() для создания конфигурации перед запуском Jest.
person
poeticGeek
schedule
20.12.2016
require
используется. К сожалению, на данный момент Jest не поддерживает насмешки надimport
в стиле ES6. - person Heinrich Filter   schedule 25.01.2016