Files
kandev/apps/web/lib/agent-profile-fallback.test.ts
2026-09-17 14:34:41 +01:00

52 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { classifyAgentProfileFallback } from "./agent-profile-fallback";
describe("classifyAgentProfileFallback", () => {
it("classifies a profile with no configured fallback as none", () => {
expect(classifyAgentProfileFallback({ autoFallback: false, fallbackModel: "" })).toEqual({
kind: "none",
});
});
it("classifies exact-model selection before a saved explicit fallback", () => {
expect(
classifyAgentProfileFallback({
requireExactModel: true,
autoFallback: false,
fallbackModel: "saved-explicit-model",
}),
).toEqual({ kind: "exact" });
});
it("classifies exact-model selection before saved automatic fallback", () => {
expect(
classifyAgentProfileFallback({
requireExactModel: true,
autoFallback: true,
fallbackModel: "",
}),
).toEqual({ kind: "exact" });
});
it("classifies automatic fallback as next", () => {
expect(classifyAgentProfileFallback({ autoFallback: true, fallbackModel: "" })).toEqual({
kind: "next",
});
});
it("preserves an explicit fallback model opaquely", () => {
const model = " provider/model:with spaces ";
expect(classifyAgentProfileFallback({ autoFallback: false, fallbackModel: model })).toEqual({
kind: "model",
model,
});
});
it("gives automatic fallback precedence over an explicit saved model", () => {
expect(
classifyAgentProfileFallback({ autoFallback: true, fallbackModel: "saved-explicit-model" }),
).toEqual({ kind: "next" });
});
});