благодаря настройке transform
вы можете сделать это.
package.json
"jest": {
"transform": {
"\\.svg$": "<rootDir>/fileTransformer.js"
ВАЖНО
вам необходимо предоставить transform
другим расширениям (особенно *.js
и *.jsx
) в явном виде, иначе вы получите ошибки. Таким образом, вы получите что-то вроде:
"transform": {
"^.+\\.js$": "babel-jest",
"\\.svg$": "<rootDir>/fileTransformer.js"
....
Что касается fileTransformer.js , он просто эмулирует путь экспорта файла (вы можете добавить любое преобразование для удаления пути или расширения или чего-либо еще):
const path = require('path');
module.exports = {
process(src, filename) {
return `module.exports = ${JSON.stringify(path.basename(filename))}`;
}
};
Это значит
import svgIcon from './moon.svg';
будет работать так же, как
const svgIcon = 'moon.svg'
Так для компонента, содержащего
...
<img src={svgIcon} />
вы можете написать утверждение как
expect(imgElementYouMayFind.props.src).toEqual('moon.svg')