import { describe, expect, it } from "vite-plus/test";import type { ServerProviderModel } from "@t3tools/contracts"; import { groupModelsForDisplay, nextHiddenModelsForBulkToggle } from "./ProviderModelsSection"; function model(slug: string, isCustom = false): ServerProviderModel { return { slug, name: slug, isCustom, capabilities: null };} describe("groupModelsForDisplay", () => { it("lists favorites first, then visible models in user order, then hidden ones", () => { const models = [model("a"), model("b"), model("c"), model("d"), model("custom", true)]; const display = groupModelsForDisplay(models, { favoriteModels: new Set(["c"]), hiddenModels: new Set(["a", "custom"]), modelOrder: ["d", "b"], }); // A custom model is never hidden, even if its slug is in the hidden set. expect(display.map((entry) => entry.slug)).toEqual(["c", "d", "b", "custom", "a"]); });}); describe("nextHiddenModelsForBulkToggle", () => { it("hides every built-in model without hiding custom models", () => { const models = [model("a"), model("b"), model("custom", true)]; expect(nextHiddenModelsForBulkToggle(models, ["a"])).toEqual(["a", "b"]); }); it("shows every built-in model while preserving unrelated hidden entries", () => { const models = [model("a"), model("b"), model("custom", true)]; expect(nextHiddenModelsForBulkToggle(models, ["a", "b", "legacy", "custom"])).toEqual([ "legacy", "custom", ]); });});
import { describe, expect, it } from "vite-plus/test";
import type { ServerProviderModel } from "@t3tools/contracts";
import { groupModelsForDisplay, nextHiddenModelsForBulkToggle } from "./ProviderModelsSection";
function model(slug: string, isCustom = false): ServerProviderModel {
return { slug, name: slug, isCustom, capabilities: null };
}
describe("groupModelsForDisplay", () => {
it("lists favorites first, then visible models in user order, then hidden ones", () => {
const models = [model("a"), model("b"), model("c"), model("d"), model("custom", true)];
const display = groupModelsForDisplay(models, {
favoriteModels: new Set(["c"]),
hiddenModels: new Set(["a", "custom"]),
modelOrder: ["d", "b"],
});
// A custom model is never hidden, even if its slug is in the hidden set.
expect(display.map((entry) => entry.slug)).toEqual(["c", "d", "b", "custom", "a"]);
});
});
describe("nextHiddenModelsForBulkToggle", () => {
it("hides every built-in model without hiding custom models", () => {
const models = [model("a"), model("b"), model("custom", true)];
expect(nextHiddenModelsForBulkToggle(models, ["a"])).toEqual(["a", "b"]);
});
it("shows every built-in model while preserving unrelated hidden entries", () => {
const models = [model("a"), model("b"), model("custom", true)];
expect(nextHiddenModelsForBulkToggle(models, ["a", "b", "legacy", "custom"])).toEqual([
"legacy",
"custom",
]);
});
});