From 0b058d4d85f7431d1132e3fd5cdeebeea3ee9457 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 1 Mar 2026 23:32:21 -0800 Subject: [PATCH] test(browser): cover missing resolved CDP range fallback --- src/browser/profiles-service.test.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/browser/profiles-service.test.ts b/src/browser/profiles-service.test.ts index ef599fad82a..3bc05d99194 100644 --- a/src/browser/profiles-service.test.ts +++ b/src/browser/profiles-service.test.ts @@ -61,6 +61,31 @@ describe("BrowserProfilesService", () => { expect(writeConfigFile).toHaveBeenCalled(); }); + it("falls back to derived CDP range when resolved CDP range is missing", async () => { + const base = resolveBrowserConfig({}); + const baseWithoutRange = { ...base } as { + [key: string]: unknown; + cdpPortRangeStart?: unknown; + cdpPortRangeEnd?: unknown; + }; + delete baseWithoutRange.cdpPortRangeStart; + delete baseWithoutRange.cdpPortRangeEnd; + const resolved = { + ...baseWithoutRange, + controlPort: 30000, + } as BrowserServerState["resolved"]; + const { ctx, state } = createCtx(resolved); + + vi.mocked(loadConfig).mockReturnValue({ browser: { profiles: {} } }); + + const service = createBrowserProfilesService(ctx); + const result = await service.createProfile({ name: "work" }); + + expect(result.cdpPort).toBe(30009); + expect(state.resolved.profiles.work?.cdpPort).toBe(30009); + expect(writeConfigFile).toHaveBeenCalled(); + }); + it("accepts per-profile cdpUrl for remote Chrome", async () => { const resolved = resolveBrowserConfig({}); const { ctx } = createCtx(resolved);