|
|
|
@@ -255,69 +255,67 @@ describe("hasByok", () => {
|
|
|
|
|
|
|
|
|
|
describe("buildTriggerLabel", () => {
|
|
|
|
|
it("returns resolved model name for non-kilo provider unchanged", () => {
|
|
|
|
|
expect(buildTriggerLabel("GPT-4o", "openai", undefined, null, false, "", true, labels)).toBe("GPT-4o")
|
|
|
|
|
expect(buildTriggerLabel("GPT-4o", "openai", null, false, "", true, labels)).toBe("GPT-4o")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("strips sub-provider prefix from resolved name for kilo gateway models", () => {
|
|
|
|
|
expect(
|
|
|
|
|
buildTriggerLabel("Anthropic: Claude Sonnet", KILO_GATEWAY_ID, undefined, null, false, "", true, labels),
|
|
|
|
|
).toBe("Claude Sonnet")
|
|
|
|
|
expect(buildTriggerLabel("Anthropic: Claude Sonnet", KILO_GATEWAY_ID, null, false, "", true, labels)).toBe(
|
|
|
|
|
"Claude Sonnet",
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("does not strip prefix for non-kilo provider even if name contains ': '", () => {
|
|
|
|
|
expect(buildTriggerLabel("Anthropic: Claude Sonnet", "anthropic", undefined, null, false, "", true, labels)).toBe(
|
|
|
|
|
expect(buildTriggerLabel("Anthropic: Claude Sonnet", "anthropic", null, false, "", true, labels)).toBe(
|
|
|
|
|
"Anthropic: Claude Sonnet",
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns resolved name as-is when providerID is undefined", () => {
|
|
|
|
|
expect(buildTriggerLabel("GPT-4o", undefined, undefined, null, false, "", true, labels)).toBe("GPT-4o")
|
|
|
|
|
expect(buildTriggerLabel("GPT-4o", undefined, null, false, "", true, labels)).toBe("GPT-4o")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns providerName / resolvedName for non-kilo provider with providerName", () => {
|
|
|
|
|
expect(buildTriggerLabel("GPT-4o", "openai", "OpenAI", null, false, "", true, labels)).toBe("OpenAI / GPT-4o")
|
|
|
|
|
it("does not add provider name to the compact label", () => {
|
|
|
|
|
expect(buildTriggerLabel("GPT-5.6 Luna", "openai", null, false, "", true, labels)).toBe("GPT-5.6 Luna")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns modelID for kilo gateway raw selection", () => {
|
|
|
|
|
const raw = { providerID: "kilo", modelID: "kilo-auto/frontier" }
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, raw, false, "", true, labels)).toBe("kilo-auto/frontier")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, raw, false, "", true, labels)).toBe("kilo-auto/frontier")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns providerID / modelID for non-kilo raw selection", () => {
|
|
|
|
|
const raw = { providerID: "anthropic", modelID: "claude-3-5-sonnet" }
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, raw, false, "", true, labels)).toBe(
|
|
|
|
|
"anthropic / claude-3-5-sonnet",
|
|
|
|
|
)
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, raw, false, "", true, labels)).toBe("anthropic / claude-3-5-sonnet")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns clearLabel when allowClear and no selection", () => {
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, null, true, "None", true, labels)).toBe("None")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, null, true, "None", true, labels)).toBe("None")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("falls back to labels.notSet when allowClear and clearLabel is empty", () => {
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, null, true, "", true, labels)).toBe("Not set")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, null, true, "", true, labels)).toBe("Not set")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns labels.select when providers exist and no selection", () => {
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, null, false, "", true, labels)).toBe("Select model")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, null, false, "", true, labels)).toBe("Select model")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("returns labels.noProviders when no providers available", () => {
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, null, false, "", false, labels)).toBe("No providers")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, null, false, "", false, labels)).toBe("No providers")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("prefers resolvedName over raw selection", () => {
|
|
|
|
|
const raw = { providerID: "anthropic", modelID: "claude-3-5-sonnet" }
|
|
|
|
|
expect(buildTriggerLabel("Claude Sonnet", undefined, undefined, raw, false, "", true, labels)).toBe("Claude Sonnet")
|
|
|
|
|
expect(buildTriggerLabel("Claude Sonnet", undefined, raw, false, "", true, labels)).toBe("Claude Sonnet")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("ignores partial raw selection (only providerID)", () => {
|
|
|
|
|
const raw = { providerID: "anthropic", modelID: "" }
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, raw, false, "", true, labels)).toBe("Select model")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, raw, false, "", true, labels)).toBe("Select model")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("ignores partial raw selection (only modelID)", () => {
|
|
|
|
|
const raw = { providerID: "", modelID: "claude-3-5-sonnet" }
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, undefined, raw, false, "", true, labels)).toBe("Select model")
|
|
|
|
|
expect(buildTriggerLabel(undefined, undefined, raw, false, "", true, labels)).toBe("Select model")
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|