authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-04 23:24:43-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-04 23:24:43-07:00
log07d2497db89014ccd71aa077fc809aff47e4af91
treecdeb663ba62343b1bfb750496f11a488c0f2e5da
parente5a87e8b9ca9db21e0291ddbd54438c5fe56b277
signature Signed by PGP key B5690EEEBB952194

test(web): keep provider field readers private (#9952)


2 files changed, 2 insertions(+), 20 deletions(-)

apps/web/src/components/settings/ProviderSettingsForm.test.ts-14
......@@ -5,8 +5,6 @@ import { DRIVER_OPTION_BY_VALUE } from "./providerDriverMeta";
55import {
66 deriveProviderSettingsFields,
77 nextProviderConfigWithFieldValue,
8 readProviderConfigBoolean,
9 readProviderConfigString,
108} from "./ProviderSettingsForm";
119
1210describe("ProviderSettingsForm helpers", () => {
......@@ -90,10 +88,6 @@ describe("ProviderSettingsForm helpers", () => {
9088 expect(next).toEqual({ forkOwned: 1 });
9189 });
9290
93 it("reads non-string config values as blank strings", () => {
94 expect(readProviderConfigString({ binaryPath: 123 }, "binaryPath")).toBe("");
95 });
96
9791 it("omits false boolean fields when clearWhenEmpty is omit", () => {
9892 const next = nextProviderConfigWithFieldValue(
9993 { forkOwned: 1, experimental: true },
......@@ -156,12 +150,4 @@ describe("ProviderSettingsForm helpers", () => {
156150
157151 expect(next).toEqual({ experimental: false });
158152 });
159
160 it("reads non-boolean config values as false booleans", () => {
161 expect(readProviderConfigBoolean({ experimental: "true" }, "experimental")).toBe(false);
162 });
163
164 it("reads missing boolean config values from the supplied default", () => {
165 expect(readProviderConfigBoolean({}, "experimental", true)).toBe(true);
166 });
167153});
apps/web/src/components/settings/ProviderSettingsForm.tsx+2-6
......@@ -119,17 +119,13 @@ export function deriveProviderSettingsFields(
119119 });
120120}
121121
122export function readProviderConfigString(config: unknown, key: string): string {
122function readProviderConfigString(config: unknown, key: string): string {
123123 if (config === null || typeof config !== "object") return "";
124124 const value = (config as Record<string, unknown>)[key];
125125 return typeof value === "string" ? value : "";
126126}
127127
128export function readProviderConfigBoolean(
129 config: unknown,
130 key: string,
131 defaultValue = false,
132): boolean {
128function readProviderConfigBoolean(config: unknown, key: string, defaultValue = false): boolean {
133129 if (config === null || typeof config !== "object") return defaultValue;
134130 const value = (config as Record<string, unknown>)[key];
135131 return typeof value === "boolean" ? value : defaultValue;