diff --git a/client/src/utils/__tests__/schemaUtils.test.ts b/client/src/utils/__tests__/schemaUtils.test.ts index 0ecd8075..50337532 100644 --- a/client/src/utils/__tests__/schemaUtils.test.ts +++ b/client/src/utils/__tests__/schemaUtils.test.ts @@ -39,8 +39,8 @@ describe("generateDefaultValue", () => { ).toBe(false); }); - test("generates default array", () => { - expect(generateDefaultValue({ type: "array" })).toEqual([]); + test("generates undefined for optional array", () => { + expect(generateDefaultValue({ type: "array" })).toBe(undefined); }); test("generates default empty object", () => { @@ -52,8 +52,18 @@ describe("generateDefaultValue", () => { expect(generateDefaultValue({ type: "unknown" })).toBe(undefined); }); - test("generates empty array for non-required array", () => { - expect(generateDefaultValue({ type: "array" })).toEqual([]); + test("generates empty array for required array", () => { + const parentSchema = { required: ["testArray"] }; + expect( + generateDefaultValue({ type: "array" }, "testArray", parentSchema), + ).toEqual([]); + }); + + test("generates undefined for non-required array", () => { + const parentSchema = { required: ["otherField"] }; + expect( + generateDefaultValue({ type: "array" }, "testArray", parentSchema), + ).toBe(undefined); }); test("generates empty object for non-required object", () => { diff --git a/client/src/utils/schemaUtils.ts b/client/src/utils/schemaUtils.ts index 7a175142..02603d0e 100644 --- a/client/src/utils/schemaUtils.ts +++ b/client/src/utils/schemaUtils.ts @@ -109,7 +109,7 @@ export function generateDefaultValue( case "boolean": return isRequired ? false : undefined; case "array": - return []; + return isRequired ? [] : undefined; case "object": { if (!schema.properties) return {};