Я разработал модульные тесты для моего реактивного приложения, используя шутки и энзимы. Я использую шутку версии 25.7.1. Когда я запускаю тесты, это терпит неудачу с ошибкой ниже. Я не уверен, почему это не нравится ключевое слово импорта.
FAIL src / components / App.test.tsx
● Не удалось запустить набор тестов
D:\Dev\ps-visualizer\ClientApp\node_modules\@svgdotjs\svg.js\src\main.js:2
import './modules/optional/arrange.js'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected string
at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:471:17)
at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:513:25)
at Object.<anonymous> (node_modules/@bentley/imodeljs-markup/lib/Markup.js:10:18)
Вот моя шутливая конфигурация в package.json,
{
"browser": true,
"verbose": true,
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}",
"!src/**/*.d.ts"
],
"setupFilesAfterEnv": [
"<rootDir>/src/setupTests.ts"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"globals": {
"ts-jest": {
"tsConfig": "tsconfig.test.json"
}
},
"roots": [
"<rootDir>/src"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
],
"transform": {
"^.+\\.jsx?$": "babel-jest",
"^.+\\.tsx?$": "ts-jest"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$",
"^.+\\.module\\.(css|sass|scss)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web",
"\\.(css|less|scss|json)$": "<rootDir>/__mocks__/styleMock.js",
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"web.js",
"js",
"web.ts",
"ts",
"web.tsx",
"tsx",
"json",
"web.jsx",
"jsx",
"node"
]
}
tsconfig определяется так,
{
"compilerOptions": {
"target": "es2017",
"lib": [
"esnext.asynciterable",
"es2017",
"dom",
"dom.iterable",
"scripthost"
],
"module": "commonjs",
"stripInternal": false,
"declaration": true,
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noImplicitThis": true,
"alwaysStrict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": false,
"experimentalDecorators": true,
"skipLibCheck": true,
"sourceMap": true,
"declarationMap": true,
"jsx": "react",
"preserveConstEnums": true,
"forceConsistentCasingInFileNames": true
}
}