Files
oh-my-opencode/src/shared/model-format-normalizer.test.ts
T
YeonGyu-Kim def44338ff refactor(models): bump claude-opus-4-6 to claude-opus-4-7 across fallback chains, categories, and hooks
Updates the canonical Anthropic Opus model in every fallback chain
(sisyphus, oracle, prometheus, metis, momus, visual-engineering,
ultrabrain, deep, artistry, unspecified-high), the unspecified-high
category default, the think-mode HIGH_VARIANT_MAP, the Claude Code
alias map, the claude-thinking legacy alias, the context-limit GA
regex, and event.ts fallback strings.

Widens supportsCachedAnthropicLimit to accept both claude-*-4-6 and
claude-*-4-7 so the 1M context cache still applies across the bump.

Regenerates the bundled model-capabilities snapshot from models.dev
and the model-fallback snapshot to match the new source output.
2026-04-17 14:51:52 +09:00

47 lines
1.5 KiB
TypeScript

import { describe, it, expect } from "bun:test"
import { normalizeModelFormat } from "./model-format-normalizer"
describe("normalizeModelFormat", () => {
describe("string format input", () => {
it("splits provider/model format correctly", () => {
const result = normalizeModelFormat("opencode/glm-5-free")
expect(result).toEqual({ providerID: "opencode", modelID: "glm-5-free" })
})
it("handles provider with multiple slashes", () => {
const result = normalizeModelFormat("anthropic/claude-opus-4-7/max")
expect(result).toEqual({ providerID: "anthropic", modelID: "claude-opus-4-7/max" })
})
it("returns undefined for malformed string without separator", () => {
const result = normalizeModelFormat("invalid")
expect(result).toBeUndefined()
})
it("returns undefined for empty string", () => {
const result = normalizeModelFormat("")
expect(result).toBeUndefined()
})
})
describe("object format input", () => {
it("passthroughs object format unchanged", () => {
const input = { providerID: "opencode", modelID: "glm-5-free" }
const result = normalizeModelFormat(input)
expect(result).toEqual(input)
})
})
describe("edge cases", () => {
it("returns undefined for null", () => {
const result = normalizeModelFormat(null)
expect(result).toBeUndefined()
})
it("returns undefined for undefined", () => {
const result = normalizeModelFormat(undefined)
expect(result).toBeUndefined()
})
})
})