Add tests for responses with examples #166
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The OpenAPI specification allows for specifying examples along side a schema in a content map1. The example can be an object with some defined fields, but none of these fields are mandatory in OpenAPI 3.0.32.
However, it looks like we're failing to parse documents that don't have the
value
field.Specifically we can't parse this spec unless we add the
value
field:responses: MyResponse: description: Some response content: application/json: schema: type: string examples: application/json: summary: "a hello response" + value: "hello"
This is used in the wild—notably in the Github API.
This appears to be because the model used in OpenAPIKit expects
value
to be non-optional3.Modifications
Add some tests, one with an
XCTExpectFailure
, to track this.Result
We have tests that we can use to track this incompatibility with such OpenAPI documents.
Test Plan
This patch is tests only.
Footnotes
https://spec.openapis.org/oas/v3.0.3#mediaTypeObject ↩
https://spec.openapis.org/oas/v3.0.3#exampleObject ↩
https://github.com/mattpolzin/OpenAPIKit/blob/main/Sources/OpenAPIKit/Example.swift#L19 ↩