From 29b89e90871a791cd8815e891b869bae17631435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Wed, 10 Jul 2019 12:01:59 +0200 Subject: [PATCH 1/2] fix(render-schema): generate proper paths for arrays --- .../__snapshots__/renderSchema.spec.ts.snap | 34 +++++++++++++++++++ src/utils/renderSchema.ts | 5 +-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap b/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap index 2d5fa544..2053e0eb 100644 --- a/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap +++ b/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap @@ -76,6 +76,7 @@ Array [ "properties", "propertyIsArrayOfObjects", "items", + "properties", "ArrayObjectProperty", ], "required": false, @@ -1214,6 +1215,7 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "state", ], "required": false, @@ -1322,6 +1324,7 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", ], "required": false, @@ -1343,8 +1346,10 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "orderItemId", ], "required": false, @@ -1437,8 +1442,10 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", ], "required": false, @@ -1467,10 +1474,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "title", ], "required": false, @@ -1500,10 +1510,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "selected", ], "required": false, @@ -1526,10 +1539,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "additionalRequiredInfo", ], "required": false, @@ -1554,10 +1570,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "deliveryInfo", ], "patternProperties": undefined, @@ -1626,10 +1645,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "deliveryInfo", "properties", "availableDeliveryTypes", @@ -1663,10 +1685,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "deliveryInfo", "properties", "ticketRecipients", @@ -1690,10 +1715,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "deliveryInfo", "properties", "ccEmail", @@ -1717,10 +1745,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "deliveryInfo", "properties", "postalAddress", @@ -1743,10 +1774,13 @@ Array [ "properties", "ticketingOptionChoice", "items", + "properties", "orderItemBreakdown", "items", + "properties", "options", "items", + "properties", "deliveryInfo", "properties", "pickUpAtStation", diff --git a/src/utils/renderSchema.ts b/src/utils/renderSchema.ts index 12fcf63c..5a7a9924 100644 --- a/src/utils/renderSchema.ts +++ b/src/utils/renderSchema.ts @@ -149,12 +149,13 @@ export const renderSchema: Walker = function*(schema, level = 0, meta = { path: case SchemaKind.Object: yield* getProperties(parsedSchema.items, level, { ...meta, - path: [...path, 'items'], + path: [...path, 'items', 'properties'], }); break; case SchemaKind.Array: yield* renderSchema(parsedSchema.items, level, { - path, + ...meta, + path: [...path, 'items'], }); break; } From a9ee7b5d4a5b3ab8b9983c8e716bc902db9dca56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Wed, 10 Jul 2019 12:02:52 +0200 Subject: [PATCH 2/2] fix(render-schema): generate proper paths for combiners --- .../__snapshots__/renderSchema.spec.ts.snap | 22 +++++++++---------- src/utils/renderSchema.ts | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap b/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap index 2053e0eb..36cd5d77 100644 --- a/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap +++ b/src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap @@ -176,7 +176,7 @@ Array [ "enum": undefined, "id": "random-id", "path": Array [ - "properties", + "allOf", 0, ], "patternProperties": undefined, @@ -199,7 +199,7 @@ Array [ "id": "random-id", "name": "test", "path": Array [ - "properties", + "allOf", 0, "properties", "test", @@ -221,7 +221,7 @@ Array [ "enum": undefined, "id": "random-id", "path": Array [ - "properties", + "allOf", 1, ], "patternProperties": undefined, @@ -261,7 +261,7 @@ Array [ "id": "random-id", "name": "id", "path": Array [ - "properties", + "allOf", 1, "properties", "id", @@ -281,7 +281,7 @@ Array [ "id": "random-id", "name": "completed_at", "path": Array [ - "properties", + "allOf", 1, "properties", "completed_at", @@ -306,7 +306,7 @@ Array [ "id": "random-id", "name": "created_at", "path": Array [ - "properties", + "allOf", 1, "properties", "created_at", @@ -328,7 +328,7 @@ Array [ "id": "random-id", "name": "updated_at", "path": Array [ - "properties", + "allOf", 1, "properties", "updated_at", @@ -617,7 +617,7 @@ Array [ "path": Array [ "properties", "plan", - "properties", + "anyOf", 0, ], "patternProperties": undefined, @@ -645,7 +645,7 @@ Array [ "path": Array [ "properties", "plan", - "properties", + "anyOf", 0, "properties", "foo", @@ -667,7 +667,7 @@ Array [ "path": Array [ "properties", "plan", - "properties", + "anyOf", 0, "properties", "bar", @@ -693,7 +693,7 @@ Array [ "path": Array [ "properties", "plan", - "properties", + "anyOf", 1, ], "subtype": "integer", diff --git a/src/utils/renderSchema.ts b/src/utils/renderSchema.ts index 5a7a9924..738c8b90 100644 --- a/src/utils/renderSchema.ts +++ b/src/utils/renderSchema.ts @@ -118,7 +118,7 @@ export const renderSchema: Walker = function*(schema, level = 0, meta = { path: yield* renderSchema(property, level + 1, { ...(i !== 0 && { divider: DIVIDERS[node.combiner] }), - path: [...path, 'properties', i], + path: [...path, node.combiner, i], }); } }