Я использую React и тестирую с Jest
& Enzyme
, в package.json
Я устанавливаю moduleNameMapper
с псевдонимом к папке в корне моего приложения:
"jest": {
"moduleNameMapper": {
"^constants(.*)$": "<rootDir>/app/constants$1",
}
}
В моемкомпонент hello.js
я его импортировал
import HelloConst from 'constants';
class Hello {}
export default Hello;
файл теста компонента hello.test.js
имеет:
// import stuffs
describe('test', () => {
test('match snapshot', () => {
let wrapper = shallow(<Hello />);
expect(wrapper).toMatchSnapshot();
});
});
Проблема в моем node_modules
есть библиотека с именем constants_browserify
, котораяиспользуя то же имя constants
, что и его определенные константы.Jest не может различить мои константы и browserify
константы, поэтому, когда я запускаю тест, Jest использует константы браузера и делает мой тест неудачным.
Если я переименую свой constants
в другое имя, например "^constantsxxx(.*)$": "<rootDir>/app/constants$1"
, то это сработает.Но это глупо, что я должен переименовать свою собственную переменную только из-за того, что существует другая библиотека.У тебя есть идеи?