Суть такова: я настроил конфигурацию baseUrl в jsconfig.json что бы пользоваться абсолютными путями в проекте и настроил webpack в next.config.js что бы он распознавал импорт изображений. Когда я первый раз запустил Jest он поругался, что не видит абсолютные пути, решил проблему таким образом (воспользовался
JsConfigPathsMapper):
const JsConfigPathsMapper = require('jsconfig-paths-jest-mapper');
module.exports = {
verbose: true,
moduleNameMapper: new JsConfigPathsMapper({ configFileName: "jsconfig.json" })
};
вот что в
jsconfig.json:
{
"compilerOptions": {
"baseUrl": ".",
"lib": ["es5", "es6", "dom"],
"jsx": "react",
"strict": false,
"removeComments": true,
"paths": {
"src/*": ["src/*"],
"public/*": ["public/*"],
"public/(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": ["__mocks__/fileMock.js"]
}
}
}
Вот что в
/fileMock.js:
module.exports = 'test-file-stub';
Все абсолютные пути нашлись, но теперь осталась проблема что он не распознает изображения когда я запускаю jest:
FAIL src/modules/place/PlaceCard/placeCard.test.js
● Test suite failed to run
/mnt/c/Users/715/Desktop/my projects/surgut.expert/public/img/heart1.png:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){�PNG
SyntaxError: Invalid or unexpected token
1 | import React from 'react';
2 | import styled from 'styled-components';
> 3 | import LikeSrc from 'public/img/heart1.png';
Подскажите пожалуйста что делать, я уже много что перепробовал, остается писать сюда
В гугле мало информации, находил данную проблему тут:
https://github.com/facebook/jest/issues/2663, делал так же, но все равно не помогло, может что то не верно делал, знающие люди, выручайте плиз!