/** @type {import('jest').Config} */ module.exports = { preset: 'ts-jest', testEnvironment: 'jsdom', roots: ['/src'], testMatch: [ '**/__tests__/**/*.(ts|tsx|js)', '**/*.(test|spec).(ts|tsx|js)' ], transform: { '^.+\\.(ts|tsx)$': 'ts-jest', }, collectCoverageFrom: [ 'src/**/*.(ts|tsx)', '!src/**/*.d.ts', '!src/main.tsx', '!src/vite-env.d.ts' ], moduleNameMapping: { '^@/(.*)$': '/src/$1', '\\.(css|less|scss|sass)$': 'identity-obj-proxy', '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 'jest-transform-stub' }, setupFilesAfterEnv: ['/src/test/setup.ts'], testPathIgnorePatterns: [ '/node_modules/', '/dist/', '/e2e/' ], moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], coverageThreshold: { global: { branches: 70, functions: 70, lines: 70, statements: 70 } }, testTimeout: 10000 };