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.