From 125d7a94caf7ea15db7fd7dff66a6119ea6e4f2b Mon Sep 17 00:00:00 2001 From: Vincent Koc <25068+vincentkoc@users.noreply.github.com> Date: Sat, 11 Jul 2026 05:39:15 -0700 Subject: [PATCH] test(ci): lock balanced whole shard packing --- test/scripts/ci-node-test-plan.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/scripts/ci-node-test-plan.test.ts b/test/scripts/ci-node-test-plan.test.ts index ebc4bd920032..265565595cde 100644 --- a/test/scripts/ci-node-test-plan.test.ts +++ b/test/scripts/ci-node-test-plan.test.ts @@ -208,6 +208,20 @@ describe("scripts/lib/ci-node-test-plan.mjs", () => { .filter((shard) => shard.groups.some((group) => !group.includePatterns)) .every((shard) => shard.timeoutMinutes === 120), ).toBe(true); + const smallWholeJobs = compact.filter((shard) => + shard.checkName.startsWith("checks-node-compact-small-whole-"), + ); + const wholeGroupCounts = smallWholeJobs.map((shard) => shard.groups.length); + expect(Math.max(...wholeGroupCounts) - Math.min(...wholeGroupCounts)).toBeLessThanOrEqual(1); + const toolingJob = smallWholeJobs.find((shard) => + shard.groups.some((group) => group.shard_name === "core-tooling"), + ); + const tuiPtyJob = smallWholeJobs.find((shard) => + shard.groups.some((group) => group.shard_name === "core-runtime-tui-pty"), + ); + expect(toolingJob).toBeDefined(); + expect(tuiPtyJob).toBeDefined(); + expect(toolingJob?.checkName).not.toBe(tuiPtyJob?.checkName); }); it("splits the slow core unit shards while keeping paired source/security coverage", () => {