Я использую webpack для разработки компонента React. Вот его простая версия:
'use strict';
require('./MyComponent.less');
var React = require('react');
var MyComponent = React.createClass({
render() {
return (
<div className="my-component">
Hello World
</div>
);
}
});
module.exports = MyComponent;
Теперь я хотел бы протестировать этот компонент, используя jest. Вот соответствующий бит из моего package.json
:
"scripts": {
"test": "jest"
},
"jest": {
"rootDir": ".",
"testDirectoryName": "tests",
"scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
"unmockedModulePathPatterns": [
"react"
]
}
При запуске npm test
я получаю следующую ошибку:
SyntaxError:/Users/mishamoroshko/react-component/src/tests/MyComponent.js:/Users/mishamoroshko/react-component/src/MyComponent.js:/Пользователи/mishamoroshko/react-component/src/MyComponent. less: Неожиданный токен ILLEGAL
Похоже, веб-пакет должен обрабатывать require('./MyComponent.less')
, прежде чем jest сможет запустить тест.
Интересно, нужно ли мне использовать что-то вроде jest-webpack. Если да, есть ли способ указать несколько scriptPreprocessor
s? (обратите внимание, что я уже использую babel-jest
)