import type { Config } from '@jest/types'; import { coverageConfig } from './test/jest-coverage.config'; const config: Config.InitialOptions = { verbose: true, moduleFileExtensions: ['js', 'json', 'ts', 'node'], rootDir: '.', testEnvironment: 'node', globalSetup: '/test/jest-global-setup.ts', setupFiles: ['/test/jest-setup.ts'], setupFilesAfterEnv: ['/test/jest-transaction-setup.ts'], testRegex: 'test/modules/.*/unit/.*spec\\.ts$', transform: { '^.+\\.(t|j)s$': [ 'ts-jest', { tsconfig: 'tsconfig.json', diagnostics: false, }, ], }, moduleNameMapper: { '^ormconfig$': '/ormconfig.ts', '^src/(.*)': '/src/$1', '^scripts/(.*)': '/scripts/$1', '^lib/(.*)': '/lib/$1', '@dto/(.*)': '/src/dto/$1', '@plugins/(.*)': '/plugins/$1', '@services/(.*)': '/src/services/$1', '@entities/(.*)': '/src/entities/$1', '@controllers/(.*)': '/src/controllers/$1', '@modules/(.*)': '/src/modules/$1', '@ee/(.*)': '/ee/$1', '@apps/(.*)': '/ee/apps/$1', '@helpers/(.*)': '/src/helpers/$1', '@licensing/(.*)': '/ee/licensing/$1', '@instance-settings/(.*)': '/ee/instance-settings/$1', '@otel/(.*)': '/src/otel/$1', // Mock mariadb — v3.5.0+ is ESM-only, Jest can't require() it (jestjs/jest#15275) '^mariadb$': '/test/__mocks__/mariadb.ts', '^test-helper$': '/test/test.helper.ts', }, ...coverageConfig(), coverageDirectory: '/coverage-unit', runner: 'groups', testTimeout: 30000, modulePathIgnorePatterns: ['/dist/'], transformIgnorePatterns: [ 'node_modules/(?!(@octokit|before-after-hook|universal-user-agent|is-plain-object)/)', ], }; export default config;