cal.pub0.org/jest.config.ts

120 lines
4.0 KiB
TypeScript

import type { Config } from "jest";
// Added +2 to ensure we need to do some conversions in our tests
process.env.TZ = "GMT+2";
const config: Config = {
preset: "ts-jest",
verbose: true,
projects: [
{
displayName: "@calcom/web",
roots: ["<rootDir>/apps/web"],
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
modulePathIgnorePatterns: [
//
"<rootDir>/apps/web/test/__fixtures__",
"<rootDir>/apps/web/node_modules",
"<rootDir>/apps/web/dist",
],
clearMocks: true,
setupFilesAfterEnv: ["<rootDir>/tests/config/singleton.ts"],
setupFiles: ["<rootDir>/apps/web/test/jest-setup.js"],
testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)", "**/__tests__/**/*.(spec|test).(ts|tsx|js)"],
testPathIgnorePatterns: ["<rootDir>/apps/web/.next", "<rootDir>/apps/web/playwright/"],
transform: {
"^.+\\.(js|jsx|ts|tsx)$": ["babel-jest", { presets: ["next/babel"] }],
},
transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"],
testEnvironment: "jsdom",
resolver: `<rootDir>/apps/web/test/jest-resolver.js`,
moduleNameMapper: {
"^@components(.*)$": "<rootDir>/apps/web/components$1",
"^@lib(.*)$": "<rootDir>/apps/web/lib$1",
"^@server(.*)$": "<rootDir>/apps/web/server$1",
},
},
{
displayName: "@calcom/lib",
roots: ["<rootDir>/packages/lib"],
testEnvironment: "node",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
transform: {
"^.+\\.tsx?$": "ts-jest",
},
globals: {
"ts-jest": {
tsconfig: "<rootDir>/packages/lib/tsconfig.test.json",
},
},
},
{
displayName: "@calcom/closecom",
roots: ["<rootDir>/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: ["<rootDir>/packages/app-store/closecom/test/globals.ts"],
},
{
displayName: "@calcom/routing-forms",
roots: ["<rootDir>/packages/app-store/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/features",
roots: ["<rootDir>/packages/features"],
testMatch: ["**/*.(spec|test).(ts|tsx|js)"],
transform: {
"^.+\\.ts?$": "ts-jest",
},
transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"],
testEnvironment: "jsdom",
moduleDirectories: ["node_modules", "<rootDir>"],
globals: {
"ts-jest": {
tsconfig: "<rootDir>/packages/features/tsconfig.json",
},
},
},
// FIXME: Prevent this breaking Jest when API module is missing
// {
// displayName: "@calcom/api",
// roots: ["<rootDir>/apps/api"],
// testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)"],
// setupFilesAfterEnv: ["<rootDir>/tests/config/singleton.ts"],
// transform: {
// "^.+\\.ts?$": "ts-jest",
// },
// globals: {
// "ts-jest": {
// tsconfig: "<rootDir>/apps/api/tsconfig.json",
// },
// },
// transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"],
// testEnvironment: "node",
// clearMocks: true,
// moduleNameMapper: {
// "^@lib/(.*)$": "<rootDir>/apps/api/lib/$1",
// "^@api/(.*)$": "<rootDir>/apps/api/pages/api/$1",
// },
// // setupFilesAfterEnv: ["<rootDir>/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;