feat(MED-161): add jest for service tests
This commit is contained in:
66
jest.config.js
Normal file
66
jest.config.js
Normal file
@@ -0,0 +1,66 @@
|
||||
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'],
|
||||
};
|
||||
Reference in New Issue
Block a user