javascript - 'SyntaxError: Oväntad identifierare' från ol-ext i Typescript Jest-tester
Jag använder openlayers-tilläggsbiblioteket ol-ext i min applikation. Det fungerar bra när jag kör applikationen, men jag har problem när jag försöker köra mina tester. När testerna körs, och objektet försöker skapas, får jag följande:
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import ol_ext_inherits from '../util/ext'
^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
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> (src/private/geomap-ol/interaction-edit.ts:1429:41)
Jag har försökt ändra mina "transformIgnorePatterns" i jest-konfigurationen för att inkludera ol-ext, men det orsakade problem med att openlayers inte löses:
nuvarande jestconfig.json:
{
"transform": {
"^.+\\.tsx?$": "ts-jest",
"^.+\\.jsx?$": "babel-jest",
"^.+\\.svg$": "jest-svg-transformer",
"^.+\\.xml$": "jest-raw-loader"
},
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"],
"collectCoverage": true,
"collectCoverageFrom": ["src/**/*.{js,ts,jsx,tsx}"],
"coveragePathIgnorePatterns": ["<rootDir>/src/index.ts", "<rootDir>/node_modules/"],
"transformIgnorePatterns": ["node_modules/(?!(ol)/)"],
"testEnvironment": "jest-environment-jsdom-fifteen",
"setupFiles": ["jest-canvas-mock"]
}
försökte jestconfig.json:
{
...
"transformIgnorePatterns": ["node_modules/(?!(ol|ol\\-ext)/)"],
...
}
och
"transformIgnorePatterns": ["node_modules/(?!(ol|ol\\-ext)/)", "node_modules/(?!(ol\\-ext)/)"],
Båda dessa versioner gjorde att ol-biblioteket också slutade att ignoreras.
babel.config.js:
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
};
Jag förväntar mig att ol-ext-biblioteket kan användas även under tester så att jag inte har en stor del otestad kod.