// Sync object /** @type {import('@jest/types').Config.InitialOptions} */ const config = { roots: ["/src"], collectCoverageFrom: ["src/**/*.{js,jsx,ts,tsx}", "!src/**/*.d.ts"], reporters: [ "default", [ "jest-junit", { outputDirectory: "dist-tests/test-results/jest", outputName: "jest.xml", includeShortConsoleOutput: true, classNameTemplate: "{classname}-{title}", titleTemplate: "{classname}-{title}", }, ], ], setupFiles: ["react-app-polyfill/jsdom"], setupFilesAfterEnv: ["/src/setupTests.ts"], testMatch: [ "/src/**/__tests__/**/*.{js,jsx,ts,tsx}", "/src/**/*.{spec,test}.{js,jsx,ts,tsx}", ], testEnvironment: "jsdom", transform: { "^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "/config/jest/babelTransform.js", "^.+\\.css$": "/config/jest/cssTransform.js", "^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)": "/config/jest/fileTransform.js", }, transformIgnorePatterns: [ "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$", "^.+\\.module\\.(css|sass|scss)$", ], modulePaths: [], moduleNameMapper: { "^react-native$": "react-native-web", "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy", }, moduleFileExtensions: [ "web.js", "js", "web.ts", "ts", "web.tsx", "tsx", "json", "web.jsx", "jsx", "node", ], watchPlugins: ["jest-watch-typeahead/filename", "jest-watch-typeahead/testname"], resetMocks: true, coveragePathIgnorePatterns: [ "node_modules", "test-config", "jestGlobalMocks.ts", ".module.ts", ".mock.ts", "reportWebVitals.ts", "/src/app/hooks.ts", "/src/app/store.ts", "/src/App.tsx", "/src/index.tsx", "/src/features/counter/*", ], }; module.exports = config; // Or async function module.exports = async () => { return config; };