diff --git a/client/src/components/DynamicJsonForm.tsx b/client/src/components/DynamicJsonForm.tsx index 5237513..15cfde6 100644 --- a/client/src/components/DynamicJsonForm.tsx +++ b/client/src/components/DynamicJsonForm.tsx @@ -16,7 +16,14 @@ export type JsonValue = | { [key: string]: JsonValue }; export type JsonSchemaType = { - type: "string" | "number" | "integer" | "boolean" | "array" | "object" | "null"; + type: + | "string" + | "number" + | "integer" + | "boolean" + | "array" + | "object" + | "null"; description?: string; required?: boolean; default?: JsonValue; @@ -261,11 +268,11 @@ const DynamicJsonForm = ({ size="sm" onClick={() => { const defaultValue = generateDefaultValue( - propSchema.items as JsonSchemaType + propSchema.items as JsonSchemaType, ); handleFieldChange(path, [ ...arrayValue, - defaultValue ?? null + defaultValue ?? null, ]); }} title={ diff --git a/client/src/utils/__tests__/schemaUtils.test.ts b/client/src/utils/__tests__/schemaUtils.test.ts index a238798..4eba268 100644 --- a/client/src/utils/__tests__/schemaUtils.test.ts +++ b/client/src/utils/__tests__/schemaUtils.test.ts @@ -19,7 +19,9 @@ describe("generateDefaultValue", () => { }); test("generates default boolean", () => { - expect(generateDefaultValue({ type: "boolean", required: true })).toBe(false); + expect(generateDefaultValue({ type: "boolean", required: true })).toBe( + false, + ); }); test("generates default array", () => { @@ -27,12 +29,16 @@ describe("generateDefaultValue", () => { }); test("generates default empty object", () => { - expect(generateDefaultValue({ type: "object", required: true })).toEqual({}); + expect(generateDefaultValue({ type: "object", required: true })).toEqual( + {}, + ); }); test("generates default null for unknown types", () => { // @ts-expect-error Testing with invalid type - expect(generateDefaultValue({ type: "unknown", required: true })).toBe(null); + expect(generateDefaultValue({ type: "unknown", required: true })).toBe( + null, + ); }); test("generates object with properties", () => { diff --git a/client/src/utils/schemaUtils.ts b/client/src/utils/schemaUtils.ts index 9c438e7..ab4c920 100644 --- a/client/src/utils/schemaUtils.ts +++ b/client/src/utils/schemaUtils.ts @@ -7,7 +7,6 @@ import { JsonObject } from "./jsonPathUtils"; * @returns A default value matching the schema type, or null for non-required fields */ export function generateDefaultValue(schema: JsonSchemaType): JsonValue { - if ("default" in schema) { // Ensure we don't return undefined even if schema.default is undefined return schema.default === undefined ? null : schema.default; @@ -29,7 +28,7 @@ export function generateDefaultValue(schema: JsonSchemaType): JsonValue { return []; case "object": { if (!schema.properties) return {}; - + const obj: JsonObject = {}; Object.entries(schema.properties) .filter(([, prop]) => prop.required)