import type { Config } from '@jest/types'; const config: Config.InitialOptions = { clearMocks: true, coverageDirectory: 'coverage', coverageReporters: ['text', 'cobertura', 'html', 'json-summary'], collectCoverageFrom: ['src/**/*.{ts,tsx}'], moduleFileExtensions: ['ts', 'tsx', 'js', 'json'], modulePathIgnorePatterns: ['dist'], moduleNameMapper: { '\\.(css|less|scss)$': '/__mocks__/cssMock.ts', '\\.md$': '/__mocks__/cssMock.ts', }, globals: { extensionsToTreatAsEsm: ['.ts'], 'ts-jest': { useESM: true, }, }, testMatch: ['/src/**/*?(*.)(test).(ts|js)?(x)'], preset: 'ts-jest/presets/js-with-ts-esm', transform: { '^.+\\.(ts|tsx)?$': 'ts-jest', '^.+\\.(js|jsx)$': 'babel-jest', }, transformIgnorePatterns: [ 'node_modules/(?!(lodash-es|react-dnd|core-dnd|@react-dnd|dnd-core|react-dnd-html5-backend|axios|@signozhq/design-tokens|d3-interpolate|d3-color)/)', ], setupFilesAfterEnv: ['jest.setup.ts'], testPathIgnorePatterns: ['/node_modules/', '/public/'], moduleDirectories: ['node_modules', 'src'], testEnvironment: 'jest-environment-jsdom', testEnvironmentOptions: { 'jest-playwright': { browsers: ['chromium', 'firefox', 'webkit'], }, }, coverageThreshold: { global: { statements: 80, branches: 65, functions: 80, lines: 80, }, }, }; export default config;