Files
medreport_mrb2b/jest.config.js

67 lines
1.5 KiB
JavaScript

import { pathsToModuleNameMapper } from 'ts-jest';
import { readFileSync } from 'fs';
const tsconfig = JSON.parse(readFileSync('./tsconfig.json', 'utf8'));
/** @type {import('jest').Config} */
export default {
preset: 'ts-jest',
testEnvironment: 'node',
// Handle module resolution for TypeScript paths
moduleNameMapper: {
...pathsToModuleNameMapper(tsconfig.compilerOptions.paths, {
prefix: '<rootDir>/',
}),
// Mock problematic libraries
'^isikukood$': '<rootDir>/__mocks__/isikukood.ts',
'^server-only$': '<rootDir>/__mocks__/server-only.ts',
},
// Test file patterns
testMatch: [
'**/__tests__/**/*.(ts|tsx|js)',
'**/*.(test|spec).(ts|tsx|js)'
],
// Setup files
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
// Coverage configuration
collectCoverageFrom: [
'lib/**/*.{ts,tsx}',
'app/**/*.{ts,tsx}',
'components/**/*.{ts,tsx}',
'!**/*.d.ts',
'!**/node_modules/**',
'!**/.next/**'
],
// Transform configuration
transform: {
'^.+\\.(ts|tsx)$': ['ts-jest', {
useESM: true,
tsconfig: {
jsx: 'react-jsx',
},
}],
},
// Module file extensions
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
// Ignore patterns
testPathIgnorePatterns: [
'<rootDir>/.next/',
'<rootDir>/node_modules/',
],
// Transform ignore patterns for node_modules
transformIgnorePatterns: [
'node_modules/(?!(.*\\.mjs$))',
],
// ESM support
extensionsToTreatAsEsm: ['.ts'],
};