Проблема в том, что Jest выполняет импорт этих CSS и пытается проанализировать их, как если бы они были JavaScript.
«Неожиданный токен».сообщение, вероятно, приходит, потому что первая строка файла, который он задыхается, является объявлением класса CSS, то есть .datepicker: { ... }
.
В любом случае, как указано в этот ответ , способ получитьвокруг этого создается файл, содержащий модуль, который экспортирует пустой объект.Я назвал мой styleMock.js
.
module.exports = {};
Затем вам нужно создать файл jest.config.js
в корне вашего проекта и добавить:
module.exports = {
moduleNameMapper: {
'\\.(css|less)$': '<rootDir>/test/jest/__mocks__/styleMock.js',
}
};
Параметр moduleNameMapper
сообщает Jestкак интерпретировать файлы с разными расширениями.В этом случае нам просто нужно указать на пустой файл, который мы только что создали.Очевидно, соответственно измените путь к файлу.
И обратите внимание, что вы можете расширить приведенное выше регулярное выражение для любого окончания файла, которое вам нужно.Мой выглядит так:
moduleNameMapper: {
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/test/jest/__mocks__/fileMock.js',
'\\.(css|less)$': '<rootDir>/test/jest/__mocks__/styleMock.js',
},
, где fileMock.js
идентичен styleMock.js
В качестве альтернативы, вы можете использовать такой модуль, как jest-transform-stub ,который делает то же самое для вас.