From ef52d8c86555e2410e16bfbb2e165328ff210773 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 10 May 2026 13:46:30 +0100 Subject: [PATCH] test: clear google provider model broad matchers --- extensions/google/provider-models.test.ts | 118 +++++++++++++--------- 1 file changed, 68 insertions(+), 50 deletions(-) diff --git a/extensions/google/provider-models.test.ts b/extensions/google/provider-models.test.ts index 0bf319b35cb..c14eff2c4b4 100644 --- a/extensions/google/provider-models.test.ts +++ b/extensions/google/provider-models.test.ts @@ -26,6 +26,19 @@ function createTemplateModel( } as ProviderRuntimeModel; } +function expectModelFields( + model: ProviderRuntimeModel | undefined, + fields: Partial, +) { + expect(model).toBeDefined(); + if (!model) { + throw new Error("expected provider model"); + } + for (const [key, value] of Object.entries(fields)) { + expect(model[key as keyof ProviderRuntimeModel]).toEqual(value); + } +} + describe("resolveGoogleGeminiForwardCompatModel", () => { it("resolves stable gemini 2.5 flash-lite from direct google templates for Gemini CLI when available", () => { const model = resolveGoogleGeminiForwardCompatModel({ @@ -37,7 +50,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-gemini-cli", id: "gemini-2.5-flash-lite", api: "google-generative-ai", @@ -61,7 +74,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-gemini-cli", id: "gemini-2.5-flash-lite", api: "google-gemini-cli", @@ -80,7 +93,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-vertex", id: "gemini-3.1-pro-preview", api: "google-gemini-cli", @@ -98,7 +111,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google", id: "gemini-3.1-pro-preview", api: "google-generative-ai", @@ -127,7 +140,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-gemini-cli", id: "gemini-3.1-pro-preview", api: "google-gemini-cli", @@ -153,7 +166,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-gemini-cli", id: "gemini-3.1-pro-preview", contextWindow: 1_048_576, @@ -174,7 +187,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google", id: "gemini-3.1-flash-preview", api: "google-gemini-cli", @@ -196,7 +209,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google", id: "gemini-3.1-flash-preview", api: "google-generative-ai", @@ -219,7 +232,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google", id: "gemini-3-flash-preview", api: "google-generative-ai", @@ -243,7 +256,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-gemini-cli", id: "gemini-3-flash-preview", api: "google-generative-ai", @@ -259,39 +272,42 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { createTemplateModel("google", "gemini-3.1-flash-lite-preview", { reasoning: true }), ]; - expect( + expectModelFields( resolveGoogleGeminiForwardCompatModel({ providerId: "google", ctx: createContext({ provider: "google", modelId: "gemini-pro-latest", models }), }), - ).toMatchObject({ - provider: "google", - id: "gemini-pro-latest", - api: "google-generative-ai", - reasoning: true, - }); - expect( + { + provider: "google", + id: "gemini-pro-latest", + api: "google-generative-ai", + reasoning: true, + }, + ); + expectModelFields( resolveGoogleGeminiForwardCompatModel({ providerId: "google", ctx: createContext({ provider: "google", modelId: "gemini-flash-latest", models }), }), - ).toMatchObject({ - provider: "google", - id: "gemini-flash-latest", - api: "google-generative-ai", - reasoning: true, - }); - expect( + { + provider: "google", + id: "gemini-flash-latest", + api: "google-generative-ai", + reasoning: true, + }, + ); + expectModelFields( resolveGoogleGeminiForwardCompatModel({ providerId: "google", ctx: createContext({ provider: "google", modelId: "gemini-flash-lite-latest", models }), }), - ).toMatchObject({ - provider: "google", - id: "gemini-flash-lite-latest", - api: "google-generative-ai", - reasoning: true, - }); + { + provider: "google", + id: "gemini-flash-lite-latest", + api: "google-generative-ai", + reasoning: true, + }, + ); }); it("resolves Antigravity Gemini 3.1 pro customtools from the low template", () => { @@ -311,7 +327,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-antigravity", id: "gemini-3.1-pro-preview-customtools", api: "openai-completions", @@ -337,7 +353,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-antigravity", id: "gemini-3.1-pro-preview", api: "openai-completions", @@ -354,7 +370,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), ]; - expect( + expectModelFields( resolveGoogleGeminiForwardCompatModel({ providerId: "google-antigravity", ctx: createContext({ @@ -363,14 +379,15 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { models, }), }), - ).toMatchObject({ - provider: "google-antigravity", - id: "gemini-3.1-flash-preview", - api: "openai-completions", - contextWindow: 1_048_576, - }); + { + provider: "google-antigravity", + id: "gemini-3.1-flash-preview", + api: "openai-completions", + contextWindow: 1_048_576, + }, + ); - expect( + expectModelFields( resolveGoogleGeminiForwardCompatModel({ providerId: "google-antigravity", ctx: createContext({ @@ -379,12 +396,13 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { models, }), }), - ).toMatchObject({ - provider: "google-antigravity", - id: "gemini-3.1-flash-lite-preview", - api: "openai-completions", - contextWindow: 1_048_576, - }); + { + provider: "google-antigravity", + id: "gemini-3.1-flash-lite-preview", + api: "openai-completions", + contextWindow: 1_048_576, + }, + ); }); it("returns undefined for Antigravity Gemini 3.1 models without a matching template", () => { @@ -417,7 +435,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google-vertex", id: "gemini-3.1-flash-lite-preview", contextWindow: 1_048_576, @@ -452,7 +470,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google", id: "gemma-4-26b-a4b-it", reasoning: true, @@ -469,7 +487,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => { }), }); - expect(model).toMatchObject({ + expectModelFields(model, { provider: "google", id: "gemma-3-4b-it", reasoning: false,