Skip to content

Commit 7ddba51

Browse files
committed
Generate empty objects and arrays for non required object and array fields
1 parent 50131c6 commit 7ddba51

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

client/src/utils/__tests__/schemaUtils.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,20 @@ describe("generateDefaultValue", () => {
3737
);
3838
});
3939

40+
test("generates empty array for non-required array", () => {
41+
expect(generateDefaultValue({ type: "array", required: false })).toEqual([]);
42+
});
43+
44+
test("generates empty object for non-required object", () => {
45+
expect(generateDefaultValue({ type: "object", required: false })).toEqual({});
46+
});
47+
48+
test("generates null for non-required primitive types", () => {
49+
expect(generateDefaultValue({ type: "string", required: false })).toBe(null);
50+
expect(generateDefaultValue({ type: "number", required: false })).toBe(null);
51+
expect(generateDefaultValue({ type: "boolean", required: false })).toBe(null);
52+
});
53+
4054
test("generates object with properties", () => {
4155
const schema: JsonSchemaType = {
4256
type: "object",

client/src/utils/schemaUtils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ export function generateDefaultValue(schema: JsonSchemaType): JsonValue {
1313
}
1414

1515
if (!schema.required) {
16+
if (schema.type === "array") return [];
17+
if (schema.type === "object") return {};
1618
return null;
1719
}
1820

0 commit comments

Comments
 (0)