Files
fusion/packages/dashboard/app/utils/modelPresets.test.ts
gsxdsm fc0411713c feat(KB-330): rename internal packages from @kb/* to @fusion/*
- Rename @kb/core, @kb/dashboard, @kb/engine to @fusion/* namespace
- Update all import statements across 143+ files to use new package names
- Update workspace dependencies and root package.json references
- Fix bundler configurations (tsup, vite) for new package names
- Update test files and fix typecheck issues
- Add changeset file documenting the package rename
2026-03-31 13:33:44 -07:00

74 lines
2.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { ModelPreset } from "@fusion/core";
import {
applyPresetToSelection,
generatePresetId,
getPresetByName,
getRecommendedPresetForSize,
validatePresetId,
} from "./modelPresets";
const presets: ModelPreset[] = [
{
id: "budget",
name: "Budget",
executorProvider: "openai",
executorModelId: "gpt-4o-mini",
validatorProvider: "openai",
validatorModelId: "gpt-4o-mini",
},
{
id: "complex",
name: "Complex",
executorProvider: "anthropic",
executorModelId: "claude-sonnet-4-5",
},
];
describe("modelPresets utils", () => {
it("finds presets by case-insensitive display name", () => {
expect(getPresetByName(presets, "budget")).toEqual(presets[0]);
expect(getPresetByName(presets, " COMPLEX ")).toEqual(presets[1]);
expect(getPresetByName(presets, "missing")).toBeUndefined();
});
it("applies a preset to dropdown selection values", () => {
expect(applyPresetToSelection(presets[0])).toEqual({
executorValue: "openai/gpt-4o-mini",
validatorValue: "openai/gpt-4o-mini",
});
expect(applyPresetToSelection(undefined)).toEqual({
executorValue: "",
validatorValue: "",
});
});
it("recommends the mapped preset for a task size", () => {
expect(
getRecommendedPresetForSize("S", { S: "budget", M: "complex" }, presets),
).toEqual(presets[0]);
expect(
getRecommendedPresetForSize("L", { S: "budget", M: "complex" }, presets),
).toBeUndefined();
expect(getRecommendedPresetForSize(undefined, { S: "budget" }, presets)).toBeUndefined();
});
it("validates preset ids", () => {
expect(validatePresetId("budget")).toBe(true);
expect(validatePresetId("budget_v2")).toBe(true);
expect(validatePresetId("budget-v2")).toBe(true);
expect(validatePresetId("")).toBe(false);
expect(validatePresetId("has spaces")).toBe(false);
expect(validatePresetId("invalid!char")).toBe(false);
expect(validatePresetId("a".repeat(33))).toBe(false);
});
it("generates slug-friendly preset ids", () => {
expect(generatePresetId("Budget")).toBe("budget");
expect(generatePresetId(" Normal Mode ")).toBe("normal-mode");
expect(generatePresetId("Complex / Reviewer")).toBe("complex-reviewer");
expect(generatePresetId("!!!")).toBe("preset");
expect(generatePresetId("a".repeat(40))).toBe("a".repeat(32));
});
});