




















@@ -26,6 +26,19 @@ function createTemplateModel(
2626} as ProviderRuntimeModel;
2727}
282829+function expectModelFields(
30+model: ProviderRuntimeModel | undefined,
31+fields: Partial<ProviderRuntimeModel>,
32+) {
33+expect(model).toBeDefined();
34+if (!model) {
35+throw new Error("expected provider model");
36+}
37+for (const [key, value] of Object.entries(fields)) {
38+expect(model[key as keyof ProviderRuntimeModel]).toEqual(value);
39+}
40+}
41+2942describe("resolveGoogleGeminiForwardCompatModel", () => {
3043it("resolves stable gemini 2.5 flash-lite from direct google templates for Gemini CLI when available", () => {
3144const model = resolveGoogleGeminiForwardCompatModel({
@@ -37,7 +50,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
3750}),
3851});
395240-expect(model).toMatchObject({
53+expectModelFields(model, {
4154provider: "google-gemini-cli",
4255id: "gemini-2.5-flash-lite",
4356api: "google-generative-ai",
@@ -61,7 +74,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
6174}),
6275});
637664-expect(model).toMatchObject({
77+expectModelFields(model, {
6578provider: "google-gemini-cli",
6679id: "gemini-2.5-flash-lite",
6780api: "google-gemini-cli",
@@ -80,7 +93,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
8093}),
8194});
829583-expect(model).toMatchObject({
96+expectModelFields(model, {
8497provider: "google-vertex",
8598id: "gemini-3.1-pro-preview",
8699api: "google-gemini-cli",
@@ -98,7 +111,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
98111}),
99112});
100113101-expect(model).toMatchObject({
114+expectModelFields(model, {
102115provider: "google",
103116id: "gemini-3.1-pro-preview",
104117api: "google-generative-ai",
@@ -127,7 +140,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
127140}),
128141});
129142130-expect(model).toMatchObject({
143+expectModelFields(model, {
131144provider: "google-gemini-cli",
132145id: "gemini-3.1-pro-preview",
133146api: "google-gemini-cli",
@@ -153,7 +166,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
153166}),
154167});
155168156-expect(model).toMatchObject({
169+expectModelFields(model, {
157170provider: "google-gemini-cli",
158171id: "gemini-3.1-pro-preview",
159172contextWindow: 1_048_576,
@@ -174,7 +187,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
174187}),
175188});
176189177-expect(model).toMatchObject({
190+expectModelFields(model, {
178191provider: "google",
179192id: "gemini-3.1-flash-preview",
180193api: "google-gemini-cli",
@@ -196,7 +209,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
196209}),
197210});
198211199-expect(model).toMatchObject({
212+expectModelFields(model, {
200213provider: "google",
201214id: "gemini-3.1-flash-preview",
202215api: "google-generative-ai",
@@ -219,7 +232,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
219232}),
220233});
221234222-expect(model).toMatchObject({
235+expectModelFields(model, {
223236provider: "google",
224237id: "gemini-3-flash-preview",
225238api: "google-generative-ai",
@@ -243,7 +256,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
243256}),
244257});
245258246-expect(model).toMatchObject({
259+expectModelFields(model, {
247260provider: "google-gemini-cli",
248261id: "gemini-3-flash-preview",
249262api: "google-generative-ai",
@@ -259,39 +272,42 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
259272createTemplateModel("google", "gemini-3.1-flash-lite-preview", { reasoning: true }),
260273];
261274262-expect(
275+expectModelFields(
263276resolveGoogleGeminiForwardCompatModel({
264277providerId: "google",
265278ctx: createContext({ provider: "google", modelId: "gemini-pro-latest", models }),
266279}),
267-).toMatchObject({
268-provider: "google",
269-id: "gemini-pro-latest",
270-api: "google-generative-ai",
271-reasoning: true,
272-});
273-expect(
280+{
281+provider: "google",
282+id: "gemini-pro-latest",
283+api: "google-generative-ai",
284+reasoning: true,
285+},
286+);
287+expectModelFields(
274288resolveGoogleGeminiForwardCompatModel({
275289providerId: "google",
276290ctx: createContext({ provider: "google", modelId: "gemini-flash-latest", models }),
277291}),
278-).toMatchObject({
279-provider: "google",
280-id: "gemini-flash-latest",
281-api: "google-generative-ai",
282-reasoning: true,
283-});
284-expect(
292+{
293+provider: "google",
294+id: "gemini-flash-latest",
295+api: "google-generative-ai",
296+reasoning: true,
297+},
298+);
299+expectModelFields(
285300resolveGoogleGeminiForwardCompatModel({
286301providerId: "google",
287302ctx: createContext({ provider: "google", modelId: "gemini-flash-lite-latest", models }),
288303}),
289-).toMatchObject({
290-provider: "google",
291-id: "gemini-flash-lite-latest",
292-api: "google-generative-ai",
293-reasoning: true,
294-});
304+{
305+provider: "google",
306+id: "gemini-flash-lite-latest",
307+api: "google-generative-ai",
308+reasoning: true,
309+},
310+);
295311});
296312297313it("resolves Antigravity Gemini 3.1 pro customtools from the low template", () => {
@@ -311,7 +327,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
311327}),
312328});
313329314-expect(model).toMatchObject({
330+expectModelFields(model, {
315331provider: "google-antigravity",
316332id: "gemini-3.1-pro-preview-customtools",
317333api: "openai-completions",
@@ -337,7 +353,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
337353}),
338354});
339355340-expect(model).toMatchObject({
356+expectModelFields(model, {
341357provider: "google-antigravity",
342358id: "gemini-3.1-pro-preview",
343359api: "openai-completions",
@@ -354,7 +370,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
354370}),
355371];
356372357-expect(
373+expectModelFields(
358374resolveGoogleGeminiForwardCompatModel({
359375providerId: "google-antigravity",
360376ctx: createContext({
@@ -363,14 +379,15 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
363379 models,
364380}),
365381}),
366-).toMatchObject({
367-provider: "google-antigravity",
368-id: "gemini-3.1-flash-preview",
369-api: "openai-completions",
370-contextWindow: 1_048_576,
371-});
382+{
383+provider: "google-antigravity",
384+id: "gemini-3.1-flash-preview",
385+api: "openai-completions",
386+contextWindow: 1_048_576,
387+},
388+);
372389373-expect(
390+expectModelFields(
374391resolveGoogleGeminiForwardCompatModel({
375392providerId: "google-antigravity",
376393ctx: createContext({
@@ -379,12 +396,13 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
379396 models,
380397}),
381398}),
382-).toMatchObject({
383-provider: "google-antigravity",
384-id: "gemini-3.1-flash-lite-preview",
385-api: "openai-completions",
386-contextWindow: 1_048_576,
387-});
399+{
400+provider: "google-antigravity",
401+id: "gemini-3.1-flash-lite-preview",
402+api: "openai-completions",
403+contextWindow: 1_048_576,
404+},
405+);
388406});
389407390408it("returns undefined for Antigravity Gemini 3.1 models without a matching template", () => {
@@ -417,7 +435,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
417435}),
418436});
419437420-expect(model).toMatchObject({
438+expectModelFields(model, {
421439provider: "google-vertex",
422440id: "gemini-3.1-flash-lite-preview",
423441contextWindow: 1_048_576,
@@ -452,7 +470,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
452470}),
453471});
454472455-expect(model).toMatchObject({
473+expectModelFields(model, {
456474provider: "google",
457475id: "gemma-4-26b-a4b-it",
458476reasoning: true,
@@ -469,7 +487,7 @@ describe("resolveGoogleGeminiForwardCompatModel", () => {
469487}),
470488});
471489472-expect(model).toMatchObject({
490+expectModelFields(model, {
473491provider: "google",
474492id: "gemma-3-4b-it",
475493reasoning: false,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。