From 9c021a6bb206d9ce6a1be91e6f5dcfa36e5d2130 Mon Sep 17 00:00:00 2001 From: Shakker Date: Sun, 2 Aug 2026 21:22:02 +0100 Subject: [PATCH] test: keep model patch coverage focused --- ui/src/lib/sessions/index.test.ts | 33 ------------------------ ui/src/lib/sessions/list-options.test.ts | 25 ++++++++++++++++++ 2 files changed, 25 insertions(+), 33 deletions(-) diff --git a/ui/src/lib/sessions/index.test.ts b/ui/src/lib/sessions/index.test.ts index 3fdc77970444..92e0d7644cb3 100644 --- a/ui/src/lib/sessions/index.test.ts +++ b/ui/src/lib/sessions/index.test.ts @@ -658,39 +658,6 @@ describe("createSessionCapability", () => { sessions.dispose(); }); - it("defers model override publication when the caller owns lifecycle validation", async () => { - const pendingPatch = deferred(); - const request = vi.fn(async (method: string) => { - if (method === "sessions.patch") { - return await pendingPatch.promise; - } - if (method === "sessions.subscribe") { - return { subscribed: true }; - } - if (method === "sessions.list") { - return sessionsResult([], 2); - } - throw new Error(`Unexpected request: ${method}`); - }); - const client = { request } as unknown as GatewayBrowserClient; - const { gateway } = createGatewayHarness(client); - const sessions = createSessionCapability(gateway); - const key = "global"; - sessions.setModelOverride(key, "openai/gpt-old"); - - const operation = sessions.patch( - key, - { model: "openai/gpt-new" }, - { deferListRefresh: true, deferModelOverride: true }, - ); - - expect(sessions.state.modelOverrides[key]).toBe("openai/gpt-old"); - pendingPatch.resolve({ ok: true, path: "", key, entry: {} }); - await expect(operation).resolves.toMatchObject({ ok: true, key }); - expect(sessions.state.modelOverrides[key]).toBe("openai/gpt-old"); - sessions.dispose(); - }); - it("does not dispatch a queued patch on a replacement connection", async () => { const priorPatch = deferred(); const request = vi.fn(async (method: string) => { diff --git a/ui/src/lib/sessions/list-options.test.ts b/ui/src/lib/sessions/list-options.test.ts index 368c93049d64..5ba807dc535c 100644 --- a/ui/src/lib/sessions/list-options.test.ts +++ b/ui/src/lib/sessions/list-options.test.ts @@ -303,4 +303,29 @@ describe("session list replacement options", () => { expect(request.mock.calls.filter(([method]) => method === "sessions.patch")).toHaveLength(3); sessions.dispose(); }); + + it("defers model override publication when the caller owns lifecycle validation", async () => { + const pendingPatch = deferred(); + const request = vi.fn(async (method: string) => { + if (method === "sessions.patch") { + return await pendingPatch.promise; + } + throw new Error(`Unexpected request: ${method}`); + }); + const key = "global"; + const sessions = createSessions({ request } as unknown as GatewayBrowserClient, key); + sessions.setModelOverride(key, "openai/gpt-old"); + + const operation = sessions.patch( + key, + { model: "openai/gpt-new" }, + { deferListRefresh: true, deferModelOverride: true }, + ); + + expect(sessions.state.modelOverrides[key]).toBe("openai/gpt-old"); + pendingPatch.resolve({ ok: true, path: "", key, entry: {} }); + await expect(operation).resolves.toMatchObject({ ok: true, key }); + expect(sessions.state.modelOverrides[key]).toBe("openai/gpt-old"); + sessions.dispose(); + }); });