diff --git a/scripts/lib/docker-e2e-plan.mjs b/scripts/lib/docker-e2e-plan.mjs index 0e2483f7470..cfcbae11a30 100644 --- a/scripts/lib/docker-e2e-plan.mjs +++ b/scripts/lib/docker-e2e-plan.mjs @@ -34,12 +34,14 @@ export function parseLaneSelection(raw) { if (!raw) { return []; } + const laneAliases = new Map([["bundled-channel-deps", "bundled-channel-deps-compat"]]); return [ ...new Set( String(raw) .split(/[,\s]+/u) .map((token) => token.trim()) - .filter(Boolean), + .filter(Boolean) + .map((token) => laneAliases.get(token) ?? token), ), ]; } diff --git a/test/scripts/docker-e2e-plan.test.ts b/test/scripts/docker-e2e-plan.test.ts index 2844f600a72..50538b02fe2 100644 --- a/test/scripts/docker-e2e-plan.test.ts +++ b/test/scripts/docker-e2e-plan.test.ts @@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest"; import { DEFAULT_LIVE_RETRIES, RELEASE_PATH_PROFILE, + parseLaneSelection, resolveDockerE2ePlan, } from "../../scripts/lib/docker-e2e-plan.mjs"; @@ -97,6 +98,19 @@ describe("scripts/lib/docker-e2e-plan", () => { }); }); + it("maps the legacy bundled channel deps lane to the split compat lane", () => { + const selectedLaneNames = parseLaneSelection("bundled-channel-deps"); + const plan = planFor({ selectedLaneNames }); + + expect(selectedLaneNames).toEqual(["bundled-channel-deps-compat"]); + expect(plan.lanes).toEqual([ + expect.objectContaining({ + imageKind: "bare", + name: "bundled-channel-deps-compat", + }), + ]); + }); + it("rejects unknown selected lanes with the available lane names", () => { expect(() => planFor({ selectedLaneNames: ["missing-lane"] })).toThrow( /OPENCLAW_DOCKER_ALL_LANES unknown lane\(s\): missing-lane/u,