import { nxPreset } from '@nx/jest/preset'; import { createEsmPreset } from 'jest-preset-angular/presets/index.js'; const angularEsmPreset = createEsmPreset({ diagnostics: false, tsconfig: '/tsconfig.spec.json', }); const coverageReporters = ['json', 'json-summary', 'lcovonly', 'text-summary']; const collectCoverageFrom = [ 'src/**/*.{ts,js,mjs,html}', '!src/**/*.{spec,test}.ts', '!src/**/test-setup.ts', '!src/**/test-stubs/**', '!src/**/*.generated.*', '!src/**/environments/**', '!src/**/index.ts', ]; export default { ...nxPreset, ...angularEsmPreset, // See jest.preset.js: CI persists the transform cache from this directory. ...(process.env.JEST_CACHE_DIRECTORY ? { cacheDirectory: process.env.JEST_CACHE_DIRECTORY } : {}), displayName: 'web', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../coverage/apps/web', resolver: nxPreset.resolver, moduleFileExtensions: Array.from( new Set([ ...(nxPreset.moduleFileExtensions ?? []), ...(angularEsmPreset.moduleFileExtensions ?? []), ]) ), testMatch: nxPreset.testMatch, testEnvironmentOptions: {}, snapshotSerializers: angularEsmPreset.snapshotSerializers, moduleNameMapper: { ...(angularEsmPreset.moduleNameMapper ?? {}), tslib: 'tslib/tslib.es6.js', '^iptv-playlist-parser$': '/src/test-stubs/iptv-playlist-parser.mjs', '^@package$': '/src/test-stubs/package.mjs', '^shaka-player$': '/src/test-stubs/shaka-player.js', '^video.js$': '/src/test-stubs/video-js.js', '^rxjs': '/../../node_modules/rxjs/dist/bundles/rxjs.umd.js', }, transform: angularEsmPreset.transform, transformIgnorePatterns: [], extensionsToTreatAsEsm: angularEsmPreset.extensionsToTreatAsEsm, coverageReporters, collectCoverageFrom, };