56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
mergeConnectorModelEntries,
|
|
resolveSelectedConnectorModel,
|
|
} from "@shared/connector-models";
|
|
|
|
describe("connector model helpers", () => {
|
|
it("merges enabled and disabled models into one toggle list", () => {
|
|
const entries = mergeConnectorModelEntries(
|
|
[
|
|
{ id: "gpt-5.4", label: "GPT-5.4" },
|
|
{ id: "gpt-5.4-mini", label: "GPT-5.4 Mini" },
|
|
],
|
|
[{ id: "o4-mini", label: "o4-mini" }],
|
|
);
|
|
|
|
expect(entries).toEqual([
|
|
{ id: "gpt-5.4", label: "GPT-5.4", enabled: true },
|
|
{ id: "gpt-5.4-mini", label: "GPT-5.4 Mini", enabled: true },
|
|
{ id: "o4-mini", label: "o4-mini", enabled: false },
|
|
]);
|
|
});
|
|
|
|
it("keeps the current selection only if it remains enabled", () => {
|
|
const entries = mergeConnectorModelEntries(
|
|
[{ id: "gpt-5.4", label: "GPT-5.4" }],
|
|
[{ id: "gpt-5.4-mini", label: "GPT-5.4 Mini" }],
|
|
);
|
|
|
|
expect(resolveSelectedConnectorModel(entries, "gpt-5.4")).toBe("gpt-5.4");
|
|
expect(resolveSelectedConnectorModel(entries, "gpt-5.4-mini")).toBe("gpt-5.4");
|
|
expect(resolveSelectedConnectorModel(entries, "")).toBe("gpt-5.4");
|
|
});
|
|
|
|
it("dedupes duplicate ids and keeps enabled entries ahead of disabled ones", () => {
|
|
const entries = mergeConnectorModelEntries(
|
|
[{ id: "gpt-5.4", label: "GPT-5.4" }],
|
|
[
|
|
{ id: "gpt-5.4", label: "GPT-5.4" },
|
|
{ id: "gpt-4.1", label: "GPT-4.1" },
|
|
],
|
|
);
|
|
|
|
expect(entries).toEqual([
|
|
{ id: "gpt-5.4", label: "GPT-5.4", enabled: true },
|
|
{ id: "gpt-4.1", label: "GPT-4.1", enabled: false },
|
|
]);
|
|
});
|
|
|
|
it("returns an empty selection when all entries are disabled", () => {
|
|
const entries = mergeConnectorModelEntries([], [{ id: "gpt-5.4", label: "GPT-5.4" }]);
|
|
|
|
expect(resolveSelectedConnectorModel(entries, "gpt-5.4")).toBe("");
|
|
});
|
|
});
|