From f42fc9e6c2584b4e9ca77bdca89a588b9f1e2581 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 20 Apr 2026 16:59:18 +0100 Subject: [PATCH] test: share codex provider fixtures --- extensions/codex/provider.test.ts | 52 ++++++++++++++----------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/extensions/codex/provider.test.ts b/extensions/codex/provider.test.ts index fea2ed4ff58..ebf6ffc324b 100644 --- a/extensions/codex/provider.test.ts +++ b/extensions/codex/provider.test.ts @@ -11,6 +11,25 @@ afterEach(() => { vi.restoreAllMocks(); }); +function expectStaticFallbackCatalog( + result: Awaited>, +) { + expect(result.provider.models.map((model) => model.id)).toEqual([ + "gpt-5.4", + "gpt-5.4-mini", + "gpt-5.2", + ]); +} + +function createFakeCodexClient(): CodexAppServerClient { + return { + initialize: vi.fn(async () => undefined), + request: vi.fn(async () => ({ data: [] })), + addCloseHandler: vi.fn(() => () => undefined), + close: vi.fn(), + } as unknown as CodexAppServerClient; +} + describe("codex provider", () => { it("maps Codex app-server models to a Codex provider catalog", async () => { const listModels = vi.fn(async () => ({ @@ -67,11 +86,7 @@ describe("codex provider", () => { }); expect(listModels).not.toHaveBeenCalled(); - expect(result.provider.models.map((model) => model.id)).toEqual([ - "gpt-5.4", - "gpt-5.4-mini", - "gpt-5.2", - ]); + expectStaticFallbackCatalog(result); }); it("keeps a static fallback catalog when live discovery is explicitly disabled by env", async () => { @@ -83,20 +98,11 @@ describe("codex provider", () => { }); expect(listModels).not.toHaveBeenCalled(); - expect(result.provider.models.map((model) => model.id)).toEqual([ - "gpt-5.4", - "gpt-5.4-mini", - "gpt-5.2", - ]); + expectStaticFallbackCatalog(result); }); it("closes the transient app-server client after live discovery", async () => { - const client = { - initialize: vi.fn(async () => undefined), - request: vi.fn(async () => ({ data: [] })), - addCloseHandler: vi.fn(() => () => undefined), - close: vi.fn(), - } as unknown as CodexAppServerClient; + const client = createFakeCodexClient(); vi.spyOn(CodexAppServerClient, "start").mockReturnValue(client); await buildCodexProviderCatalog({ @@ -107,18 +113,8 @@ describe("codex provider", () => { }); it("does not close an active shared app-server client during live discovery", async () => { - const activeClient = { - initialize: vi.fn(async () => undefined), - request: vi.fn(async () => ({ data: [] })), - addCloseHandler: vi.fn(() => () => undefined), - close: vi.fn(), - } as unknown as CodexAppServerClient; - const discoveryClient = { - initialize: vi.fn(async () => undefined), - request: vi.fn(async () => ({ data: [] })), - addCloseHandler: vi.fn(() => () => undefined), - close: vi.fn(), - } as unknown as CodexAppServerClient; + const activeClient = createFakeCodexClient(); + const discoveryClient = createFakeCodexClient(); vi.spyOn(CodexAppServerClient, "start") .mockReturnValueOnce(activeClient) .mockReturnValueOnce(discoveryClient);