Resolve 38 conflicts preserving both sides' work: - Server: DB-based registries (dev) + WorkspaceGitService/DaemonConfigStore (main) - App: script proxy/voice MCP (dev) + pin/hide tabs/bootstrap boundary (main) - Shared: WorkspaceScriptPayload (dev) + git/GitHub runtime schemas (main) - Deleted workspace-registry-bootstrap.ts (dev's DB approach supersedes)
75 lines
1.8 KiB
TypeScript
75 lines
1.8 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import type { AgentModelDefinition } from "@server/server/agent/agent-sdk-types";
|
|
import {
|
|
buildModelRows,
|
|
buildSelectedTriggerLabel,
|
|
matchesSearch,
|
|
resolveProviderLabel,
|
|
} from "./combined-model-selector.utils";
|
|
|
|
describe("combined model selector helpers", () => {
|
|
const providerDefinitions = [
|
|
{
|
|
id: "claude",
|
|
label: "Claude",
|
|
description: "Claude provider",
|
|
defaultModeId: "default",
|
|
modes: [],
|
|
},
|
|
{
|
|
id: "codex",
|
|
label: "Codex",
|
|
description: "Codex provider",
|
|
defaultModeId: "auto",
|
|
modes: [],
|
|
},
|
|
];
|
|
|
|
const claudeModels: AgentModelDefinition[] = [
|
|
{
|
|
provider: "claude",
|
|
id: "sonnet-4.6",
|
|
label: "Sonnet 4.6",
|
|
},
|
|
];
|
|
|
|
const codexModels: AgentModelDefinition[] = [
|
|
{
|
|
provider: "codex",
|
|
id: "gpt-5.4",
|
|
label: "GPT-5.4",
|
|
},
|
|
];
|
|
|
|
it("keeps enough data to search by model and provider name", async () => {
|
|
const rows = buildModelRows(
|
|
providerDefinitions,
|
|
new Map([
|
|
["claude", claudeModels],
|
|
["codex", codexModels],
|
|
]),
|
|
);
|
|
|
|
expect(rows).toEqual([
|
|
expect.objectContaining({
|
|
providerLabel: "Claude",
|
|
modelLabel: "Sonnet 4.6",
|
|
modelId: "sonnet-4.6",
|
|
}),
|
|
expect.objectContaining({
|
|
providerLabel: "Codex",
|
|
modelLabel: "GPT-5.4",
|
|
modelId: "gpt-5.4",
|
|
}),
|
|
]);
|
|
|
|
expect(matchesSearch(rows[0]!, "claude")).toBe(true);
|
|
expect(matchesSearch(rows[1]!, "gpt-5.4")).toBe(true);
|
|
});
|
|
|
|
it("keeps the selected trigger label model-only", () => {
|
|
expect(resolveProviderLabel(providerDefinitions, "codex")).toBe("Codex");
|
|
expect(buildSelectedTriggerLabel("GPT-5.4")).toBe("GPT-5.4");
|
|
});
|
|
});
|