module.exports = { preset: 'ts-jest', testEnvironment: 'node', roots: ['/src'], testMatch: ['**/__tests__/**/*.test.ts', '**/?(*.)+(spec|test).ts'], transform: { '^.+\\.ts$': 'ts-jest', }, collectCoverageFrom: [ 'src/**/*.ts', '!src/**/*.d.ts', '!src/**/__tests__/**', '!src/**/*.test.ts', '!src/**/*.spec.ts', '!src/index.ts', ], coverageDirectory: 'coverage', coverageThreshold: { global: { branches: 60, functions: 60, lines: 60, statements: 60, }, // Higher coverage for financial operations 'src/core/ledger/**/*.ts': { branches: 80, functions: 80, lines: 80, statements: 80, }, 'src/core/payments/**/*.ts': { branches: 80, functions: 80, lines: 80, statements: 80, }, 'src/core/fx/**/*.ts': { branches: 80, functions: 80, lines: 80, statements: 80, }, 'src/core/settlement/**/*.ts': { branches: 80, functions: 80, lines: 80, statements: 80, }, 'src/core/compliance/**/*.ts': { branches: 80, functions: 80, lines: 80, statements: 80, }, }, moduleNameMapper: { '^@/(.*)$': '/src/$1', '^@/core/(.*)$': '/src/core/$1', '^@/integration/(.*)$': '/src/integration/$1', '^@/sovereign/(.*)$': '/src/sovereign/$1', '^@/infrastructure/(.*)$': '/src/infrastructure/$1', '^@/shared/(.*)$': '/src/shared/$1', }, setupFilesAfterEnv: ['/src/__tests__/setup.ts'], testTimeout: 10000, };