summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/dialog-custom-provider.test.ts
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-12 11:32:05 -0500
committerGitHub <[email protected]>2026-03-12 11:32:05 -0500
commitdce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2 (patch)
tree31cd7d7aa33733579134e9a6cf3a61762599d8e0 /packages/app/src/components/dialog-custom-provider.test.ts
parent0e077f748352df6d44c811829baff3c26b3436ac (diff)
downloadopencode-dce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2.tar.gz
opencode-dce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2.zip
chore: cleanup (#17197)
Diffstat (limited to 'packages/app/src/components/dialog-custom-provider.test.ts')
-rw-r--r--packages/app/src/components/dialog-custom-provider.test.ts82
1 files changed, 82 insertions, 0 deletions
diff --git a/packages/app/src/components/dialog-custom-provider.test.ts b/packages/app/src/components/dialog-custom-provider.test.ts
new file mode 100644
index 000000000..8cfd78ebe
--- /dev/null
+++ b/packages/app/src/components/dialog-custom-provider.test.ts
@@ -0,0 +1,82 @@
+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,
+ })
+ })
+})