From c2e134b8e46d780b61faab1021772704380e6a37 Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Mon, 20 Jul 2026 08:23:38 +0000 Subject: [PATCH 1/4] test: isolate slow filesystem and CLI suites --- tests/javascriptArtifactReconstruction.test.ts | 2 +- vitest.config.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/javascriptArtifactReconstruction.test.ts b/tests/javascriptArtifactReconstruction.test.ts index fa09dfc1a..819e392a9 100644 --- a/tests/javascriptArtifactReconstruction.test.ts +++ b/tests/javascriptArtifactReconstruction.test.ts @@ -537,7 +537,7 @@ describe("JavaScript artifact reconstruction", () => { truncated: true, omitted_count: 6, }); - }); + }, 15_000); it("rejects traversal from a production reader seam and malformed ASAR containers", async () => { const root = await fixtureDirectory(); diff --git a/vitest.config.ts b/vitest.config.ts index a71b18fdc..3ddbb0620 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -8,8 +8,11 @@ const TEST_FILES = ["tests/**/*.test.ts"]; const PROCESS_CAPTURE_TEST = "tests/processCapture.test.ts"; const CANONICAL_TEMPORARY_DIRECTORY = realpathSync(tmpdir()); const SERIAL_INTEGRATION_TESTS = [ + "tests/applicationWorkflowCli.test.ts", "tests/browserCli.test.ts", "tests/cliOutput.test.ts", + "tests/electronCli.test.ts", + "tests/javascriptArtifactReconstruction.test.ts", PROCESS_CAPTURE_TEST, "tests/runtime.test.ts", ]; From 8d3587bbcac18e90652cc95e5853158a4f9aef18 Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Mon, 20 Jul 2026 08:39:41 +0000 Subject: [PATCH 2/4] test: budget CLI output variant subprocesses --- tests/cliOutput.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/cliOutput.test.ts b/tests/cliOutput.test.ts index 5373a070d..47f8b4b0d 100644 --- a/tests/cliOutput.test.ts +++ b/tests/cliOutput.test.ts @@ -11,6 +11,7 @@ import { sanitizeCliOutput } from "../src/cliOutput.js"; const execFileAsync = promisify(execFile); const CLI_INTEGRATION_TIMEOUT_MS = 60_000; +const CLI_VARIANT_TIMEOUT_MS = 120_000; describe("CLI output boundary", () => { it("preserves normal output and sanitizes text and JSON validation errors", () => { @@ -156,7 +157,7 @@ describe("CLI output boundary", () => { ).rejects.toMatchObject({ code: 1, stdout: expect.any(String) }); } }, - CLI_INTEGRATION_TIMEOUT_MS, + CLI_VARIANT_TIMEOUT_MS, ); it( From bc8035918b1d6a3eac7fc2307867d4dc2787d3b5 Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Mon, 20 Jul 2026 08:52:20 +0000 Subject: [PATCH 3/4] test: cap workers across all hosts --- vitest.config.ts | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/vitest.config.ts b/vitest.config.ts index 3ddbb0620..cc5f5c920 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -16,34 +16,33 @@ const SERIAL_INTEGRATION_TESTS = [ PROCESS_CAPTURE_TEST, "tests/runtime.test.ts", ]; -const dualCoreProjects = - availableParallelism() === 2 - ? { - maxWorkers: 2, - projects: [ - { - test: { - name: "parallel", - include: TEST_FILES, - exclude: SERIAL_INTEGRATION_TESTS, - }, - }, - { - test: { - name: "serial-integration", - include: SERIAL_INTEGRATION_TESTS, - fileParallelism: false, - }, - }, - ], - } - : {}; +const isolatedProjects = { + maxWorkers: Math.min(2, availableParallelism()), + projects: [ + { + test: { + name: "parallel", + include: TEST_FILES, + exclude: SERIAL_INTEGRATION_TESTS, + sequence: { groupOrder: 0 }, + }, + }, + { + test: { + name: "serial-integration", + include: SERIAL_INTEGRATION_TESTS, + fileParallelism: false, + sequence: { groupOrder: 1 }, + }, + }, + ], +}; export default defineConfig({ test: { include: TEST_FILES, env: { TMPDIR: CANONICAL_TEMPORARY_DIRECTORY }, - ...dualCoreProjects, + ...isolatedProjects, retry: 2, reporters: ["default", "verbose"], coverage: { From 168100e5326958fc89431a26a1f3cca762516133 Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Mon, 20 Jul 2026 10:47:28 +0000 Subject: [PATCH 4/4] test: inherit root options in Vitest projects --- vitest.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vitest.config.ts b/vitest.config.ts index cc5f5c920..1212882a4 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -20,6 +20,7 @@ const isolatedProjects = { maxWorkers: Math.min(2, availableParallelism()), projects: [ { + extends: true as const, test: { name: "parallel", include: TEST_FILES, @@ -28,6 +29,7 @@ const isolatedProjects = { }, }, { + extends: true as const, test: { name: "serial-integration", include: SERIAL_INTEGRATION_TESTS,