test: honor low-worker full-suite gate

This commit is contained in:
Peter Steinberger
2026-04-10 13:09:17 +01:00
parent 8fe74145c4
commit 66ac5194f7
3 changed files with 96 additions and 61 deletions

View File

@@ -1,41 +1,47 @@
import { describe, expect, it } from "vitest";
const { buildVitestArgs, buildVitestRunPlans, createVitestRunSpecs, parseTestProjectsArgs } =
(await import("../../scripts/test-projects.test-support.mjs")) as unknown as {
buildVitestArgs: (args: string[], cwd?: string) => string[];
buildVitestRunPlans: (
args: string[],
cwd?: string,
) => Array<{
config: string;
forwardedArgs: string[];
includePatterns: string[] | null;
watchMode: boolean;
}>;
createVitestRunSpecs: (
args: string[],
params?: {
baseEnv?: NodeJS.ProcessEnv;
cwd?: string;
tempDir?: string;
},
) => Array<{
config: string;
env: NodeJS.ProcessEnv;
includeFilePath: string | null;
includePatterns: string[] | null;
pnpmArgs: string[];
watchMode: boolean;
}>;
parseTestProjectsArgs: (
args: string[],
cwd?: string,
) => {
forwardedArgs: string[];
targetArgs: string[];
watchMode: boolean;
};
const {
buildVitestArgs,
buildVitestRunPlans,
createVitestRunSpecs,
parseTestProjectsArgs,
resolveParallelFullSuiteConcurrency,
} = (await import("../../scripts/test-projects.test-support.mjs")) as unknown as {
buildVitestArgs: (args: string[], cwd?: string) => string[];
buildVitestRunPlans: (
args: string[],
cwd?: string,
) => Array<{
config: string;
forwardedArgs: string[];
includePatterns: string[] | null;
watchMode: boolean;
}>;
createVitestRunSpecs: (
args: string[],
params?: {
baseEnv?: NodeJS.ProcessEnv;
cwd?: string;
tempDir?: string;
},
) => Array<{
config: string;
env: NodeJS.ProcessEnv;
includeFilePath: string | null;
includePatterns: string[] | null;
pnpmArgs: string[];
watchMode: boolean;
}>;
parseTestProjectsArgs: (
args: string[],
cwd?: string,
) => {
forwardedArgs: string[];
targetArgs: string[];
watchMode: boolean;
};
resolveParallelFullSuiteConcurrency: (specCount: number, env?: NodeJS.ProcessEnv) => number;
};
const VITEST_NODE_PREFIX = [
"exec",
@@ -391,6 +397,29 @@ describe("test-projects args", () => {
]);
});
it("caps project-level parallelism when the Vitest worker budget is conservative", () => {
expect(
resolveParallelFullSuiteConcurrency(58, {
OPENCLAW_VITEST_MAX_WORKERS: "1",
}),
).toBe(1);
expect(
resolveParallelFullSuiteConcurrency(58, {
OPENCLAW_TEST_WORKERS: "1",
}),
).toBe(1);
});
it("keeps explicit project-level parallelism authoritative", () => {
expect(
resolveParallelFullSuiteConcurrency(58, {
OPENCLAW_TEST_PROJECTS_PARALLEL: "3",
OPENCLAW_VITEST_MAX_WORKERS: "1",
}),
).toBe(3);
});
it("routes cli targets to the cli config", () => {
expect(buildVitestRunPlans(["src/cli/test-runtime-capture.test.ts"])).toEqual([
{