From ebc0680903e8e2961d20e07e4dbf5453e4e36fc8 Mon Sep 17 00:00:00 2001 From: 134 Date: Tue, 21 Jul 2026 11:59:11 +0800 Subject: [PATCH] test: preserve image model classification coverage --- lib/ai/model-classification.ts | 1 - tests/routes/model-classification.test.ts | 28 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/ai/model-classification.ts b/lib/ai/model-classification.ts index f0fd20229..8e45c9552 100644 --- a/lib/ai/model-classification.ts +++ b/lib/ai/model-classification.ts @@ -57,7 +57,6 @@ const VIDEO_MODE_KEYS = new Set([ "audio-to-video", "first-frame", "first-last-frame", - "reference-images", ]); const VIDEO_KIND_KEYS = new Set([ diff --git a/tests/routes/model-classification.test.ts b/tests/routes/model-classification.test.ts index 0289d8932..c0b50796b 100644 --- a/tests/routes/model-classification.test.ts +++ b/tests/routes/model-classification.test.ts @@ -18,6 +18,34 @@ const atlasHunyuan3D = { }; test.describe("AI model media classification", () => { + test("keeps multi-reference BananaImage models classified as image models", () => { + const descriptor = { + providerType: "bananaimage", + modelId: "gemini-3-pro-image-preview", + capabilities: { + supportedModes: [ + "text-to-image", + "image-to-image", + "reference-images", + ], + }, + supportsImageGen: true, + }; + + expect(isVideoModelDescriptor(descriptor)).toBe(false); + expect(isImageGenerationModelDescriptor(descriptor)).toBe(true); + }); + + test("still recognizes explicit video generation modes", () => { + expect( + isVideoModelDescriptor({ + providerType: "custom", + modelId: "custom-video-model", + capabilities: { supportedModes: ["text-to-video"] }, + }) + ).toBe(true); + }); + test("keeps Atlas 3D entries out of image and video categories", () => { expect(inferAtlasCloudMediaKind(atlasHunyuan3D)).toBe("3d");