8befcced39
* ci: shard API v2 E2E tests into 4 parallel jobs Co-Authored-By: anik@cal.com <adhabal2002@gmail.com> * check * Fix typo in workflow name from 'Update' to 'Updatee' * Rename workflow from 'PR Updatee' to 'PR Update' * update * test * update * fix * update * check * remove * revert --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import type { Config } from "jest";
|
|
|
|
// Detect if sharding is being used by checking for --shard flag
|
|
const isSharding = process.argv.some((arg) => arg.includes("--shard"));
|
|
|
|
// For Jest e2e, we reduce parallelism when sharding in CI to improve test isolation
|
|
// since tests share database state and can interfere with each other
|
|
const getMaxWorkers = () => {
|
|
if (process.env.CI && isSharding) {
|
|
// In CI with sharding: reduce workers to improve test isolation
|
|
// Sharding already provides parallelism across shards (4 parallel jobs)
|
|
return 4;
|
|
}
|
|
// Local development or non-sharded: use more workers (similar to Playwright)
|
|
return 8;
|
|
};
|
|
|
|
const maxWorkers = getMaxWorkers();
|
|
|
|
const config: Config = {
|
|
preset: "ts-jest",
|
|
moduleFileExtensions: ["js", "json", "ts"],
|
|
rootDir: ".",
|
|
moduleNameMapper: {
|
|
"@/(.*)": "<rootDir>/src/$1",
|
|
"test/(.*)": "<rootDir>/test/$1",
|
|
},
|
|
testEnvironment: "node",
|
|
testRegex: ".e2e-spec.ts$",
|
|
transform: {
|
|
"^.+\\.ts$": "ts-jest",
|
|
},
|
|
setupFiles: ["<rootDir>/test/setEnvVars.ts", "jest-date-mock"],
|
|
setupFilesAfterEnv: ["<rootDir>/test/jest.setup-e2e.ts"],
|
|
reporters: ["default", "jest-summarizing-reporter"],
|
|
workerIdleMemoryLimit: "512MB",
|
|
maxWorkers,
|
|
testPathIgnorePatterns: ["/dist/", "/node_modules/"],
|
|
transformIgnorePatterns: ["/dist/", "/node_modules/"],
|
|
};
|
|
|
|
export default config;
|