Spaces:
Sleeping
Sleeping
import { isVisionModel } from "../app/utils"; | |
describe("isVisionModel", () => { | |
const originalEnv = process.env; | |
beforeEach(() => { | |
jest.resetModules(); | |
process.env = { ...originalEnv }; | |
}); | |
afterEach(() => { | |
process.env = originalEnv; | |
}); | |
test("should identify vision models using regex patterns", () => { | |
const visionModels = [ | |
"gpt-4-vision", | |
"claude-3-opus", | |
"gemini-1.5-pro", | |
"gemini-2.0", | |
"gemini-exp-vision", | |
"learnlm-vision", | |
"qwen-vl-max", | |
"qwen2-vl-max", | |
"gpt-4-turbo", | |
"dall-e-3", | |
]; | |
visionModels.forEach((model) => { | |
expect(isVisionModel(model)).toBe(true); | |
}); | |
}); | |
test("should exclude specific models", () => { | |
expect(isVisionModel("claude-3-5-haiku-20241022")).toBe(false); | |
}); | |
test("should not identify non-vision models", () => { | |
const nonVisionModels = [ | |
"gpt-3.5-turbo", | |
"gpt-4-turbo-preview", | |
"claude-2", | |
"regular-model", | |
]; | |
nonVisionModels.forEach((model) => { | |
expect(isVisionModel(model)).toBe(false); | |
}); | |
}); | |
test("should identify models from VISION_MODELS env var", () => { | |
process.env.VISION_MODELS = "custom-vision-model,another-vision-model"; | |
expect(isVisionModel("custom-vision-model")).toBe(true); | |
expect(isVisionModel("another-vision-model")).toBe(true); | |
expect(isVisionModel("unrelated-model")).toBe(false); | |
}); | |
test("should handle empty or missing VISION_MODELS", () => { | |
process.env.VISION_MODELS = ""; | |
expect(isVisionModel("unrelated-model")).toBe(false); | |
delete process.env.VISION_MODELS; | |
expect(isVisionModel("unrelated-model")).toBe(false); | |
expect(isVisionModel("gpt-4-vision")).toBe(true); | |
}); | |
}); |