import type { Config } from "jest"; const config: Config = { preset: "ts-jest", verbose: true, projects: [ { displayName: "@calcom/web", roots: ["/apps/web"], moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], modulePathIgnorePatterns: [ // "/apps/web/test/__fixtures__", "/apps/web/node_modules", "/apps/web/dist", ], clearMocks: true, setupFilesAfterEnv: ["/tests/config/singleton.ts"], setupFiles: ["/apps/web/test/jest-setup.js"], testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)", "**/__tests__/**/*.(spec|test).(ts|tsx|js)"], testPathIgnorePatterns: ["/apps/web/.next", "/apps/web/playwright/"], transform: { "^.+\\.(js|jsx|ts|tsx)$": ["babel-jest", { presets: ["next/babel"] }], }, transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"], testEnvironment: "jsdom", resolver: `/apps/web/test/jest-resolver.js`, moduleNameMapper: { "^@components(.*)$": "/apps/web/components$1", "^@lib(.*)$": "/apps/web/lib$1", "^@server(.*)$": "/apps/web/server$1", }, }, { displayName: "@calcom/lib", roots: ["/packages/lib"], testEnvironment: "node", transform: { "^.+\\.tsx?$": "ts-jest", }, }, { displayName: "@calcom/closecom", roots: ["/packages/app-store/closecom"], testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)"], transform: { "^.+\\.ts?$": "ts-jest", }, transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"], testEnvironment: "jsdom", setupFiles: ["/packages/app-store/closecom/test/globals.ts"], }, { displayName: "@calcom/routing-forms", roots: ["/packages/app-store/ee/routing-forms"], testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)"], transform: { "^.+\\.ts?$": "ts-jest", }, transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"], testEnvironment: "jsdom", }, { displayName: "@calcom/api", roots: ["/apps/api"], testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)"], setupFilesAfterEnv: ["/tests/config/singleton.ts"], transform: { "^.+\\.ts?$": "ts-jest", }, globals: { "ts-jest": { tsconfig: "/apps/api/tsconfig.json", }, }, transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"], testEnvironment: "node", clearMocks: true, moduleNameMapper: { "^@lib/(.*)$": "/apps/api/lib/$1", "^@api/(.*)$": "/apps/api/pages/api/$1", }, // setupFilesAfterEnv: ["/apps/api/jest.setup.ts"], // Uncomment when API becomes public }, ], watchPlugins: [ "jest-watch-typeahead/filename", "jest-watch-typeahead/testname", "jest-watch-select-projects", ], }; export default config;