From 638f00ddb0efae94bb532fcebb9b77c619bebb8c Mon Sep 17 00:00:00 2001 From: Andrii Balitskyi <84702959+andrii-balitskyi@users.noreply.github.com> Date: Mon, 26 Aug 2024 17:45:23 +0200 Subject: [PATCH] fix: Correctly determine resource property format (#66) * Add format to PropertySchema to correctly determine resource property format * Update test snapshots --- src/lib/openapi-schema.ts | 1 + test/snapshots/blueprint.test.ts.md | 2 +- test/snapshots/blueprint.test.ts.snap | Bin 3144 -> 3149 bytes test/snapshots/seam-blueprint.test.ts.md | 6 +++--- test/snapshots/seam-blueprint.test.ts.snap | Bin 3658 -> 3679 bytes 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/openapi-schema.ts b/src/lib/openapi-schema.ts index 1a98e102..99a2439c 100644 --- a/src/lib/openapi-schema.ts +++ b/src/lib/openapi-schema.ts @@ -73,4 +73,5 @@ export const PropertySchema: z.ZodSchema = z.object({ 'x-deprecated': z.string().default(''), enum: z.array(z.string()).optional(), $ref: z.string().optional(), + format: z.string().optional(), }) diff --git a/test/snapshots/blueprint.test.ts.md b/test/snapshots/blueprint.test.ts.md index 97235f9d..634023fa 100644 --- a/test/snapshots/blueprint.test.ts.md +++ b/test/snapshots/blueprint.test.ts.md @@ -15,7 +15,7 @@ Generated by [AVA](https://avajs.dev). { deprecationMessage: '', description: 'Foo id', - format: 'string', + format: 'id', isDeprecated: false, isUndocumented: false, jsonType: 'string', diff --git a/test/snapshots/blueprint.test.ts.snap b/test/snapshots/blueprint.test.ts.snap index 7cf3807b7ad4af5353884fb152fc92da291c39ce..0eab834e50f6f41bde2d23f2ea77b6e7ae30b95a 100644 GIT binary patch literal 3149 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 literal 3144 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 diff --git a/test/snapshots/seam-blueprint.test.ts.md b/test/snapshots/seam-blueprint.test.ts.md index 92cddfb5..17c4f206 100644 --- a/test/snapshots/seam-blueprint.test.ts.md +++ b/test/snapshots/seam-blueprint.test.ts.md @@ -15,7 +15,7 @@ Generated by [AVA](https://avajs.dev). { deprecationMessage: '', description: 'ID of the `acs_system`.', - format: 'string', + format: 'id', isDeprecated: false, isUndocumented: false, jsonType: 'string', @@ -69,7 +69,7 @@ Generated by [AVA](https://avajs.dev). { deprecationMessage: '', description: 'Date and time at which the `acs_system` was created.', - format: 'string', + format: 'datetime', isDeprecated: false, isUndocumented: false, jsonType: 'string', @@ -220,7 +220,7 @@ Generated by [AVA](https://avajs.dev). { deprecationMessage: '', description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`.', - format: 'string', + format: 'id', isDeprecated: false, isUndocumented: false, jsonType: 'string', diff --git a/test/snapshots/seam-blueprint.test.ts.snap b/test/snapshots/seam-blueprint.test.ts.snap index e9ac504812a017c02123a42b1538acdb014f9b18..172d9a64028bbcf9000a6c0ae833e620440cff51 100644 GIT binary patch literal 3679 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