const { pathsToModuleNameMapper } = require("ts-jest"); const { compilerOptions } = require("./tsconfig"); module.exports = { reporters: ["default", "jest-junit"], collectCoverage: true, coverageReporters: ["html", "lcov"], coverageDirectory: "coverage", moduleNameMapper: pathsToModuleNameMapper(compilerOptions?.paths || {}, { prefix: "/", }), projects: [ "/apps/browser/jest.config.js", "/apps/cli/jest.config.js", "/apps/desktop/jest.config.js", "/apps/web/jest.config.js", "/bitwarden_license/bit-web/jest.config.js", "/libs/angular/jest.config.js", "/libs/common/jest.config.js", "/libs/components/jest.config.js", "/libs/importer/jest.config.js", "/libs/exporter/jest.config.js", "/libs/node/jest.config.js", ], // Workaround for a memory leak that crashes tests in CI: // https://github.com/facebook/jest/issues/9430#issuecomment-1149882002 // Also anecdotally improves performance when run locally maxWorkers: 3, globals: { "ts-jest": { // Further workaround for memory leak, recommended here: // https://github.com/kulshekhar/ts-jest/issues/1967#issuecomment-697494014 // Makes tests run faster and reduces size/rate of leak, but loses typechecking on test code // See https://bitwarden.atlassian.net/browse/EC-497 for more info isolatedModules: true, }, }, };