import { expect, test } from "@playwright/test"; import { isImageGenerationModelDescriptor, isStillImageGenerationModelDescriptor, isVideoModelDescriptor, } from "@/lib/ai/model-classification"; test.describe("model 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("uses one image-only rule for canvas and Style Pro model pools", () => { expect( isStillImageGenerationModelDescriptor({ providerType: "ruxa-image", modelId: "google/nano-banana-2", supportsImageGen: true, }) ).toBe(true); expect( isStillImageGenerationModelDescriptor({ providerType: "ruxa-video", modelId: "kling-video", supportsImageGen: true, }) ).toBe(false); }); });