import * as ngPresetAll from 'jest-preset-angular/presets'; import { InitialOptionsTsJest } from 'ts-jest/dist/types'; import { pathsToModuleNameMapper } from 'ts-jest'; const { paths } = require('./tsconfig.json').compilerOptions; const ngPreset = ngPresetAll as unknown as typeof ngPresetAll.default; const jestConfig: InitialOptionsTsJest = { preset: 'jest-preset-angular', testPathIgnorePatterns: ['frontend-common'], globals: { 'ts-jest': { ...ngPreset.defaults.globals['ts-jest'], tsconfig: '/tsconfig.spec.json', isolatedModules: true } }, cache: true, cacheDirectory: '/.jest', maxWorkers: 4, globalSetup: 'jest-preset-angular/global-setup', moduleNameMapper: { ...pathsToModuleNameMapper(paths, { prefix: '' }), '^uuid.*': '/node_modules/uuid/dist/umd/uuid.min.js', '^@yourcause/common/testing$': '/frontend-common/testing/src/public_api.ts', '\\.(css|less|sass|scss)$': '/frontend-common/testing/assets/styleMock.js', '\\.(gif|ttf|eot|svg)$': '/frontend-common/testing/assets/fileMock.js', '^toastr$': '/frontend-common/testing/src/mocks/toastr.mock.ts', '^frontend-common/(.*)': '/frontend-common/$1', '^core-js/es6/reflect$': 'reflect-metadata', '^core-js/es7/reflect$': 'reflect-metadata', '^lodash-es/(.*)': 'lodash/$1', '^lodash-es$': 'lodash' }, collectCoverage: true, coverageDirectory: 'coverage', coverageReporters: [ 'lcov', 'cobertura' ], reporters: [ 'default', 'jest-junit' ], collectCoverageFrom: [ '/ClientApp/**/*.service.ts', '/ClientApp/**/*.pipe.ts', '!**/*.spec.ts', '!**/*.d.ts', '!**/*.resources.ts' ], setupFilesAfterEnv: ['/ClientApp/setupJest.mock.ts', '/frontend-common/testing/src/mocks/setupJest.mock.ts'] }; export default jestConfig;