diff --git a/scripts/test-live-shard.mjs b/scripts/test-live-shard.mjs index e6e418af0c6..c8634c3db98 100644 --- a/scripts/test-live-shard.mjs +++ b/scripts/test-live-shard.mjs @@ -6,7 +6,7 @@ import { spawnPnpmRunner } from "./pnpm-runner.mjs"; const LIVE_TEST_SUFFIX = ".live.test.ts"; -export const LIVE_TEST_SHARDS = Object.freeze([ +export const RELEASE_LIVE_TEST_SHARDS = Object.freeze([ "native-live-src-agents", "native-live-src-gateway-core", "native-live-src-gateway-profiles", @@ -15,15 +15,19 @@ export const LIVE_TEST_SHARDS = Object.freeze([ "native-live-extensions-a-k", "native-live-extensions-l-n", "native-live-extensions-openai", - "native-live-extensions-o-z", "native-live-extensions-o-z-other", "native-live-extensions-xai", - "native-live-extensions-media", "native-live-extensions-media-audio", "native-live-extensions-media-music", "native-live-extensions-media-video", ]); +export const LIVE_TEST_SHARDS = Object.freeze([ + ...RELEASE_LIVE_TEST_SHARDS, + "native-live-extensions-o-z", + "native-live-extensions-media", +]); + function walkFiles(rootDir) { const files = []; if (!fs.existsSync(rootDir)) { diff --git a/test/scripts/test-live-shard.test.ts b/test/scripts/test-live-shard.test.ts index 8e4d112ba6c..8f503801ff0 100644 --- a/test/scripts/test-live-shard.test.ts +++ b/test/scripts/test-live-shard.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from "vitest"; import { LIVE_TEST_SHARDS, + RELEASE_LIVE_TEST_SHARDS, collectAllLiveTestFiles, selectLiveShardFiles, } from "../../scripts/test-live-shard.mjs"; @@ -9,7 +10,7 @@ describe("scripts/test-live-shard", () => { const allFiles = collectAllLiveTestFiles(); it("partitions every native live test into exactly one release shard", () => { - const selected = LIVE_TEST_SHARDS.flatMap((shard) => + const selected = RELEASE_LIVE_TEST_SHARDS.flatMap((shard) => selectLiveShardFiles(shard, allFiles).map((file) => ({ file, shard })), ); const selectedFiles = selected.map(({ file }) => file); @@ -19,6 +20,32 @@ describe("scripts/test-live-shard", () => { expect(new Set(selectedFiles).size).toBe(selectedFiles.length); }); + it("keeps aggregate shard aliases available outside the release partition", () => { + expect(LIVE_TEST_SHARDS).toEqual(expect.arrayContaining(RELEASE_LIVE_TEST_SHARDS)); + expect(LIVE_TEST_SHARDS).toEqual( + expect.arrayContaining(["native-live-extensions-o-z", "native-live-extensions-media"]), + ); + + const oToZAlias = selectLiveShardFiles("native-live-extensions-o-z", allFiles); + expect(oToZAlias).toEqual( + expect.arrayContaining(selectLiveShardFiles("native-live-extensions-o-z-other", allFiles)), + ); + expect(oToZAlias).toEqual( + expect.arrayContaining(selectLiveShardFiles("native-live-extensions-xai", allFiles)), + ); + + const mediaAlias = selectLiveShardFiles("native-live-extensions-media", allFiles); + expect(mediaAlias).toEqual( + expect.arrayContaining(selectLiveShardFiles("native-live-extensions-media-audio", allFiles)), + ); + expect(mediaAlias).toEqual( + expect.arrayContaining(selectLiveShardFiles("native-live-extensions-media-music", allFiles)), + ); + expect(mediaAlias).toEqual( + expect.arrayContaining(selectLiveShardFiles("native-live-extensions-media-video", allFiles)), + ); + }); + it("keeps slow gateway backend and media-capable extension files in their own shards", () => { expect(selectLiveShardFiles("native-live-src-gateway-backends", allFiles)).toEqual( expect.arrayContaining([