33b1d23946
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
52 lines
1.6 KiB
TypeScript
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" });
|
|
});
|
|
});
|