153 lines · 4.5 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test";import { ProviderDriverKind } from "@t3tools/contracts"; import { DRIVER_OPTION_BY_VALUE } from "./providerDriverMeta";import {  deriveProviderSettingsFields,  nextProviderConfigWithFieldValue,} from "./ProviderSettingsForm"; describe("ProviderSettingsForm helpers", () => {  it("derives visible provider config fields from the client definition schema", () => {    const codex = DRIVER_OPTION_BY_VALUE[ProviderDriverKind.make("codex")];     expect(codex).toBeDefined();    expect(deriveProviderSettingsFields(codex!).map((field) => field.key)).toEqual([      "binaryPath",      "homePath",      "shadowHomePath",      "launchArgs",    ]);  });   it("sources labels and descriptions from schema annotations", () => {    const opencode = DRIVER_OPTION_BY_VALUE[ProviderDriverKind.make("opencode")];    expect(opencode).toBeDefined();     const serverPassword = deriveProviderSettingsFields(opencode!).find(      (field) => field.key === "serverPassword",    );     expect(serverPassword).toMatchObject({      label: "Server password",      description: "Stored in plain text on disk.",      control: "password",    });  });   it("derives a select control with its choices for the Antigravity sign-in method", () => {    const antigravity = DRIVER_OPTION_BY_VALUE[ProviderDriverKind.make("antigravity")];    expect(antigravity).toBeDefined();     const fields = deriveProviderSettingsFields(antigravity!);    expect(fields.map((field) => field.key)).toEqual([      "authMethod",      "apiKey",      "gcpProject",      "gcpLocation",      "binaryPath",    ]);    const authMethod = fields.find((field) => field.key === "authMethod");    expect(authMethod).toMatchObject({ control: "select", clearWhenEmpty: "omit" });    expect(authMethod?.options?.map((option) => option.value)).toEqual([      "oauth-personal",      "oauth-business",      "gemini-api-key",      "agent-platform",    ]);    expect(fields.find((field) => field.key === "apiKey")?.control).toBe("password");  });   it("shows the auto-compaction threshold for Claude providers", () => {    const claude = DRIVER_OPTION_BY_VALUE[ProviderDriverKind.make("claudeAgent")];    expect(claude).toBeDefined();     expect(deriveProviderSettingsFields(claude!).map((field) => field.key)).toEqual([      "binaryPath",      "homePath",      "autoCompactWindow",      "launchArgs",    ]);  });   it("preserves unknown config keys while omitting empty configurable fields", () => {    const opencode = DRIVER_OPTION_BY_VALUE[ProviderDriverKind.make("opencode")];    expect(opencode).toBeDefined();     const serverUrl = deriveProviderSettingsFields(opencode!).find(      (field) => field.key === "serverUrl",    );    expect(serverUrl).toBeDefined();     const next = nextProviderConfigWithFieldValue(      { forkOwned: 1, serverUrl: "http://127.0.0.1:4096" },      serverUrl!,      "",    );     expect(next).toEqual({ forkOwned: 1 });  });   it("omits false boolean fields when clearWhenEmpty is omit", () => {    const next = nextProviderConfigWithFieldValue(      { forkOwned: 1, experimental: true },      {        key: "experimental",        control: "switch",        label: "Experimental",        clearWhenEmpty: "omit",        defaultBooleanValue: false,      },      false,    );     expect(next).toEqual({ forkOwned: 1 });  });   it("omits true boolean fields when true is the default", () => {    const next = nextProviderConfigWithFieldValue(      { forkOwned: 1, experimental: false },      {        key: "experimental",        control: "switch",        label: "Experimental",        clearWhenEmpty: "omit",        defaultBooleanValue: true,      },      true,    );     expect(next).toEqual({ forkOwned: 1 });  });   it("stores false boolean fields when true is the default", () => {    const next = nextProviderConfigWithFieldValue(      undefined,      {        key: "experimental",        control: "switch",        label: "Experimental",        clearWhenEmpty: "omit",        defaultBooleanValue: true,      },      false,    );     expect(next).toEqual({ experimental: false });  });   it("preserves false boolean fields when clearWhenEmpty is persist", () => {    const next = nextProviderConfigWithFieldValue(      undefined,      {        key: "experimental",        control: "switch",        label: "Experimental",        clearWhenEmpty: "persist",      },      false,    );     expect(next).toEqual({ experimental: false });  });});