export default { preset: 'ts-jest/presets/default-esm', extensionsToTreatAsEsm: ['.ts', '.tsx'], transform: { '^.+\\.(ts|tsx)$': ['ts-jest', { useESM: true, isolatedModules: true, tsconfig: { jsx: 'react-jsx', esModuleInterop: true, moduleResolution: 'nodenext', baseUrl: '.', noUnusedLocals: false, noUnusedParameters: false, paths: { '@/*': ['src/*'], '@/assets/*': ['src/assets/*'], '@/components/*': ['src/components/*'], '@/contexts/*': ['src/contexts/*'], '@/hooks/*': ['src/hooks/*'], '@/lib/*': ['src/lib/*'], '@/pages/*': ['src/pages/*'], '@/providers/*': ['src/providers/*'], '@/services/*': ['src/services/*'], '@/stores/*': ['src/stores/*'], '@/types/*': ['src/types/*'], '@/utils/*': ['src/utils/*'] } } }], }, testEnvironment: 'jsdom', moduleNameMapper: { '^@/(.*)$': '/src/$1', '^@/assets/(.*)$': '/src/assets/$1', '^@/components/(.*)$': '/src/components/$1', '^@/contexts/(.*)$': '/src/contexts/$1', '^@/hooks/(.*)$': '/src/hooks/$1', '^@/lib/(.*)$': '/src/lib/$1', '^@/pages/(.*)$': '/src/pages/$1', '^@/providers/(.*)$': '/src/providers/$1', '^@/services/(.*)$': '/src/services/$1', '^@/stores/(.*)$': '/src/stores/$1', '^@/types/(.*)$': '/src/types/$1', '^@/utils/(.*)$': '/src/utils/$1', }, setupFilesAfterEnv: ['/src/setupTests.ts'], testMatch: [ '/src/**/__tests__/**/*.(ts|tsx|js)', '/src/**/*.(spec|test).(ts|tsx|js)', ], collectCoverageFrom: [ 'src/**/*.(ts|tsx)', '!src/**/*.d.ts', '!src/main.tsx', '!src/vite-env.d.ts', ], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'], };