mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-04 16:13:11 +00:00
83 lines
2.4 KiB
TypeScript
83 lines
2.4 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { validateCustomProvider } from "./dialog-custom-provider-form"
|
|
|
|
const t = (key: string) => key
|
|
|
|
describe("validateCustomProvider", () => {
|
|
test("builds trimmed config payload", () => {
|
|
const result = validateCustomProvider({
|
|
form: {
|
|
providerID: "custom-provider",
|
|
name: " Custom Provider ",
|
|
baseURL: "https://api.example.com ",
|
|
apiKey: " {env: CUSTOM_PROVIDER_KEY} ",
|
|
models: [{ row: "m0", id: " model-a ", name: " Model A ", err: {} }],
|
|
headers: [
|
|
{ row: "h0", key: " X-Test ", value: " enabled ", err: {} },
|
|
{ row: "h1", key: "", value: "", err: {} },
|
|
],
|
|
saving: false,
|
|
err: {},
|
|
},
|
|
t,
|
|
disabledProviders: [],
|
|
existingProviderIDs: new Set(),
|
|
})
|
|
|
|
expect(result.result).toEqual({
|
|
providerID: "custom-provider",
|
|
name: "Custom Provider",
|
|
key: undefined,
|
|
config: {
|
|
npm: "@ai-sdk/openai-compatible",
|
|
name: "Custom Provider",
|
|
env: ["CUSTOM_PROVIDER_KEY"],
|
|
options: {
|
|
baseURL: "https://api.example.com",
|
|
headers: {
|
|
"X-Test": "enabled",
|
|
},
|
|
},
|
|
models: {
|
|
"model-a": { name: "Model A" },
|
|
},
|
|
},
|
|
})
|
|
})
|
|
|
|
test("flags duplicate rows and allows reconnecting disabled providers", () => {
|
|
const result = validateCustomProvider({
|
|
form: {
|
|
providerID: "custom-provider",
|
|
name: "Provider",
|
|
baseURL: "https://api.example.com",
|
|
apiKey: "secret",
|
|
models: [
|
|
{ row: "m0", id: "model-a", name: "Model A", err: {} },
|
|
{ row: "m1", id: "model-a", name: "Model A 2", err: {} },
|
|
],
|
|
headers: [
|
|
{ row: "h0", key: "Authorization", value: "one", err: {} },
|
|
{ row: "h1", key: "authorization", value: "two", err: {} },
|
|
],
|
|
saving: false,
|
|
err: {},
|
|
},
|
|
t,
|
|
disabledProviders: ["custom-provider"],
|
|
existingProviderIDs: new Set(["custom-provider"]),
|
|
})
|
|
|
|
expect(result.result).toBeUndefined()
|
|
expect(result.err.providerID).toBeUndefined()
|
|
expect(result.models[1]).toEqual({
|
|
id: "provider.custom.error.duplicate",
|
|
name: undefined,
|
|
})
|
|
expect(result.headers[1]).toEqual({
|
|
key: "provider.custom.error.duplicate",
|
|
value: undefined,
|
|
})
|
|
})
|
|
})
|