test: keep model patch coverage focused

This commit is contained in:
Shakker
2026-08-02 21:22:02 +01:00
parent 881c43f7bc
commit 9c021a6bb2
2 changed files with 25 additions and 33 deletions
-33
View File
@@ -658,39 +658,6 @@ describe("createSessionCapability", () => {
sessions.dispose();
});
it("defers model override publication when the caller owns lifecycle validation", async () => {
const pendingPatch = deferred<unknown>();
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<void>();
const request = vi.fn(async (method: string) => {
+25
View File
@@ -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<unknown>();
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();
});
});