Files
oh-my-opencode/src/tools/look-at/multimodal-fallback-chain.test.ts
T
YeonGyu-Kim 85151f7dfd fix(look-at): preserve variant metadata in fallback chain and block non-vision models
- fallback-chain.ts: cache-derived entries inherit variant from matching hardcoded entries
- agent-metadata.ts: new isVisionCapableAgentModel() guard blocks non-vision registered models
- tools.ts: early vision-capability check before session creation
- Added regression tests for variant preservation and non-vision model rejection
2026-03-11 21:45:49 +09:00

50 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "bun:test"
describe("buildMultimodalLookerFallbackChain", () => {
it("builds fallback chain from vision-capable models", async () => {
// given
const { buildMultimodalLookerFallbackChain } = await import("./multimodal-fallback-chain")
const visionCapableModels = [
{ providerID: "openai", modelID: "gpt-5.4" },
{ providerID: "opencode", modelID: "gpt-5.4" },
]
// when
const result = buildMultimodalLookerFallbackChain(visionCapableModels)
// then
const gpt54Entries = result.filter((entry) => entry.model === "gpt-5.4")
expect(gpt54Entries.length).toBeGreaterThan(0)
})
it("avoids duplicates when adding hardcoded entries", async () => {
// given
const { buildMultimodalLookerFallbackChain } = await import("./multimodal-fallback-chain")
const visionCapableModels = [{ providerID: "openai", modelID: "gpt-5.4" }]
// when
const result = buildMultimodalLookerFallbackChain(visionCapableModels)
// then
expect(result.length).toBeGreaterThan(0)
expect(result[0].model).toBe("gpt-5.4")
expect(result[0].providers).toContain("openai")
})
it("preserves hardcoded variant metadata for cache-derived entries", async () => {
// given
const { buildMultimodalLookerFallbackChain } = await import("./multimodal-fallback-chain")
const visionCapableModels = [{ providerID: "openai", modelID: "gpt-5.4" }]
// when
const result = buildMultimodalLookerFallbackChain(visionCapableModels)
// then
expect(result[0]).toEqual({
providers: ["openai"],
model: "gpt-5.4",
variant: "medium",
})
})
})