fix: align OpenAPI 3.x.y file uploads with specification (#10409)
Refs #9278
This commit is contained in:
@@ -0,0 +1,189 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
|
||||
describe("OpenAPI 3.0 Request Body upload file button", () => {
|
||||
beforeEach(() => {
|
||||
cy.visit("/?url=/documents/features/oas3-request-body-upload-file.yaml")
|
||||
})
|
||||
|
||||
describe("application/octet-stream", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadApplicationOctetStream").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/octet-stream media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("image/png", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadImagePng").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for image/png media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("audio/wav", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadAudioWav").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for audio/wav media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("video/mpeg", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadVideoMpeg").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for video/mpeg media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("application/octet-stream with empty Media Type Object", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadApplicationOctetStreamEmpty").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/octet-stream media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("schema type string and format binary", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadSchemaFormatBinary").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("schema type string and format byte", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadSchemaFormatByte").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("multipart/form-data object property with schema type string and format binary", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadPropertySchemaFormatBinary").click()
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("multipart/form-data object property with schema type string and format byte", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadPropertySchemaFormatByte").click()
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,257 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
|
||||
describe("OpenAPI 3.1 Request Body upload file button", () => {
|
||||
beforeEach(() => {
|
||||
cy.visit("/?url=/documents/features/oas31-request-body-upload-file.yaml")
|
||||
})
|
||||
|
||||
describe("application/octet-stream", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadApplicationOctetStream").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/octet-stream media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("image/png", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadImagePng").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for image/png media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("audio/wav", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadAudioWav").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for audio/wav media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("video/mpeg", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadVideoMpeg").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for video/mpeg media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("application/octet-stream with empty Media Type Object", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadApplicationOctetStreamEmpty").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/octet-stream media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("schema type string and format binary", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadSchemaTypeFormatBinary").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("schema type string and format byte", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadSchemaTypeFormatByte").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("schema union type includes string and format binary", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadSchemaUnionTypeFormatBinary").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("schema union type includes string and format byte", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadSchemaUnionTypeFormatByte").click()
|
||||
})
|
||||
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper i"
|
||||
).should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("multipart/form-data object property with schema type string and format binary", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadPropertySchemaFormatBinary").click()
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("multipart/form-data object property with schema type string and format byte", () => {
|
||||
beforeEach(() => {
|
||||
cy.get("#operations-default-uploadPropertySchemaFormatByte").click()
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("multipart/form-data object property with schema union type including string and format binary", () => {
|
||||
beforeEach(() => {
|
||||
cy.get(
|
||||
"#operations-default-uploadPropertySchemaUnionTypeFormatBinary"
|
||||
).click()
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
|
||||
describe("multipart/form-data object property with schema union type including string and format byte", () => {
|
||||
beforeEach(() => {
|
||||
cy.get(
|
||||
"#operations-default-uploadPropertySchemaUnionTypeFormatByte"
|
||||
).click()
|
||||
})
|
||||
|
||||
it("should display a file upload button", () => {
|
||||
cy.get(".try-out__btn").click()
|
||||
cy.get(
|
||||
".opblock-section-request-body .opblock-description-wrapper input"
|
||||
).should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -1,132 +0,0 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
|
||||
describe("OpenAPI 3.0 Request Body upload file button", () => {
|
||||
describe("application/octet-stream", () => {
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadApplicationOctetStream")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper i")
|
||||
.should(
|
||||
"have.text",
|
||||
"Example values are not available for application/octet-stream media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadApplicationOctetStream")
|
||||
.click()
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper input")
|
||||
.should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
describe("image/png", () => {
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadImagePng")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper i")
|
||||
.should(
|
||||
"have.text",
|
||||
"Example values are not available for image/png media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadApplicationOctetStream")
|
||||
.click()
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper input")
|
||||
.should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
describe("audio/wav", () => {
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadAudioWav")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper i")
|
||||
.should(
|
||||
"have.text",
|
||||
"Example values are not available for audio/wav media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadApplicationOctetStream")
|
||||
.click()
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper input")
|
||||
.should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
describe("video/mpeg", () => {
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadVideoMpeg")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper i")
|
||||
.should(
|
||||
"have.text",
|
||||
"Example values are not available for video/mpeg media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadApplicationOctetStream")
|
||||
.click()
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper input")
|
||||
.should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
describe("schema format binary", () => {
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadSchemaFormatBinary")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper i")
|
||||
.should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadSchemaFormatBinary")
|
||||
.click()
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper input")
|
||||
.should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
describe("schema format base64", () => {
|
||||
it("should display description with the correct content type", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadSchemaFormatBase64")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper i")
|
||||
.should(
|
||||
"have.text",
|
||||
"Example values are not available for application/x-custom media types."
|
||||
)
|
||||
})
|
||||
it("should display a file upload button", () => {
|
||||
cy.visit("/?url=/documents/features/request-body-upload-file.yaml")
|
||||
.get("#operations-default-uploadSchemaFormatBinary")
|
||||
.click()
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".opblock-section-request-body .opblock-description-wrapper input")
|
||||
.should("have.prop", "type", "file")
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -7,8 +7,11 @@ info:
|
||||
* `audio/*` content type (no matter what schema format)
|
||||
* `image/*` content type (no matter what schema format)
|
||||
* `video/*` content type (no matter what schema format)
|
||||
* schema format is `base64` (no matter what content type)
|
||||
* schema format is `binary` (no matter what content type)
|
||||
* `application/octect-stream` content type with empty Media Type Object
|
||||
* schema type is `string` and format is `byte` (no matter what content type)
|
||||
* schema type is `string` and format is `binary` (no matter what content type)
|
||||
* multipart/form-data object property schema type is `string` and format is `byte`
|
||||
* multipart/form-data object property schema type is `string` and format is `binary`
|
||||
version: "1.0.0"
|
||||
paths:
|
||||
/upload-application-octet-stream:
|
||||
@@ -19,13 +22,6 @@ paths:
|
||||
application/octet-stream:
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
/upload-image-png:
|
||||
post:
|
||||
operationId: uploadImagePng
|
||||
@@ -34,13 +30,6 @@ paths:
|
||||
image/png:
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
/upload-audio-wav:
|
||||
post:
|
||||
operationId: uploadAudioWav
|
||||
@@ -49,13 +38,6 @@ paths:
|
||||
audio/wav:
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
/upload-video-mpeg:
|
||||
post:
|
||||
operationId: uploadVideoMpeg
|
||||
@@ -64,13 +46,12 @@ paths:
|
||||
video/mpeg:
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
/upload-application-octet-stream-empty:
|
||||
post:
|
||||
operationId: uploadApplicationOctetStreamEmpty
|
||||
requestBody:
|
||||
content:
|
||||
application/octet-stream: {}
|
||||
/upload-schema-format-binary:
|
||||
post:
|
||||
operationId: uploadSchemaFormatBinary
|
||||
@@ -80,26 +61,36 @@ paths:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
/upload-schema-format-base64:
|
||||
/upload-schema-format-byte:
|
||||
post:
|
||||
operationId: uploadSchemaFormatBase64
|
||||
operationId: uploadSchemaFormatByte
|
||||
requestBody:
|
||||
content:
|
||||
application/x-custom:
|
||||
schema:
|
||||
type: string
|
||||
format: base64
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
format: byte
|
||||
/upload-property-schema-format-binary:
|
||||
post:
|
||||
operationId: uploadPropertySchemaFormatBinary
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
/upload-property-schema-format-byte:
|
||||
post:
|
||||
operationId: uploadPropertySchemaFormatByte
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type: string
|
||||
format: byte
|
||||
@@ -0,0 +1,150 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: "Request body file upload"
|
||||
description: |-
|
||||
This document has examples for examining the `schema` or content type for request bodies requiring a file upload
|
||||
* `application/octect-stream` content type (no matter what schema format)
|
||||
* `audio/*` content type (no matter what schema format)
|
||||
* `image/*` content type (no matter what schema format)
|
||||
* `video/*` content type (no matter what schema format)
|
||||
* `application/octect-stream` content type with empty Media Type Object
|
||||
* schema type is `string` and format is `byte` (no matter what content type)
|
||||
* schema type is `string` and format is `binary` (no matter what content type)
|
||||
* schema union type includes `string` and format is `byte` (no matter what content type)
|
||||
* schema union type includes `string` and format is `binary` (no matter what content type)
|
||||
* multipart/form-data object property schema type is `string` and format is `byte`
|
||||
* multipart/form-data object property schema type is `string` and format is `binary`
|
||||
* multipart/form-data object property schema union type includes `string` and format is `byte`
|
||||
* multipart/form-data object property schema union type includes `string` and format is `binary`
|
||||
version: "1.0.0"
|
||||
paths:
|
||||
/upload-application-octet-stream:
|
||||
post:
|
||||
operationId: uploadApplicationOctetStream
|
||||
requestBody:
|
||||
content:
|
||||
application/octet-stream:
|
||||
schema:
|
||||
type: string
|
||||
/upload-image-png:
|
||||
post:
|
||||
operationId: uploadImagePng
|
||||
requestBody:
|
||||
content:
|
||||
image/png:
|
||||
schema:
|
||||
type: string
|
||||
/upload-audio-wav:
|
||||
post:
|
||||
operationId: uploadAudioWav
|
||||
requestBody:
|
||||
content:
|
||||
audio/wav:
|
||||
schema:
|
||||
type: string
|
||||
/upload-video-mpeg:
|
||||
post:
|
||||
operationId: uploadVideoMpeg
|
||||
requestBody:
|
||||
content:
|
||||
video/mpeg:
|
||||
schema:
|
||||
type: string
|
||||
/upload-application-octet-stream-empty:
|
||||
post:
|
||||
operationId: uploadApplicationOctetStreamEmpty
|
||||
requestBody:
|
||||
content:
|
||||
application/octet-stream: {}
|
||||
/upload-schema-type-format-binary:
|
||||
post:
|
||||
operationId: uploadSchemaTypeFormatBinary
|
||||
requestBody:
|
||||
content:
|
||||
application/x-custom:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
/upload-schema-type-format-byte:
|
||||
post:
|
||||
operationId: uploadSchemaTypeFormatByte
|
||||
requestBody:
|
||||
content:
|
||||
application/x-custom:
|
||||
schema:
|
||||
type: string
|
||||
format: byte
|
||||
/upload-schema-union-type-format-binary:
|
||||
post:
|
||||
operationId: uploadSchemaUnionTypeFormatBinary
|
||||
requestBody:
|
||||
content:
|
||||
application/x-custom:
|
||||
schema:
|
||||
type:
|
||||
- object
|
||||
- string
|
||||
format: binary
|
||||
/upload-schema-union-type-format-byte:
|
||||
post:
|
||||
operationId: uploadSchemaUnionTypeFormatByte
|
||||
requestBody:
|
||||
content:
|
||||
application/x-custom:
|
||||
schema:
|
||||
type:
|
||||
- object
|
||||
- string
|
||||
format: byte
|
||||
/upload-property-schema-format-binary:
|
||||
post:
|
||||
operationId: uploadPropertySchemaFormatBinary
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
/upload-property-schema-format-byte:
|
||||
post:
|
||||
operationId: uploadPropertySchemaFormatByte
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
/upload-property-schema-union-type-format-binary:
|
||||
post:
|
||||
operationId: uploadPropertySchemaUnionTypeFormatBinary
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type:
|
||||
- object
|
||||
- string
|
||||
format: binary
|
||||
/upload-property-schema-union-type-format-byte:
|
||||
post:
|
||||
operationId: uploadPropertySchemaUnionTypeFormatByte
|
||||
requestBody:
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
file:
|
||||
type:
|
||||
- object
|
||||
- string
|
||||
format: byte
|
||||
@@ -4,6 +4,7 @@ import { Select, Input, TextArea } from "core/components/layout-utils"
|
||||
import { mount, render } from "enzyme"
|
||||
import * as JsonSchemaComponents from "core/plugins/json-schema-5/components/json-schema-components"
|
||||
import { foldType } from "core/plugins/json-schema-2020-12-samples/fn/index"
|
||||
import { makeIsFileUploadIntended } from "core/plugins/oas3/fn"
|
||||
|
||||
const components = {...JsonSchemaComponents, Select, Input, TextArea}
|
||||
|
||||
@@ -13,6 +14,16 @@ const getComponentStub = (name) => {
|
||||
return null
|
||||
}
|
||||
|
||||
const getSystemStub = () => ({
|
||||
getConfigs: () => ({
|
||||
fileUploadMediaTypes: [],
|
||||
}),
|
||||
fn: {
|
||||
hasSchemaType: () => {},
|
||||
isFileUploadIntendedOAS30: () => {},
|
||||
},
|
||||
})
|
||||
|
||||
describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
describe("strings", function() {
|
||||
it("should render the correct options for a string enum parameter", function(){
|
||||
@@ -26,6 +37,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "string",
|
||||
@@ -53,6 +65,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "string",
|
||||
@@ -78,6 +91,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
required: true,
|
||||
schema: Immutable.fromJS({
|
||||
@@ -106,6 +120,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean"
|
||||
@@ -133,6 +148,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean",
|
||||
@@ -160,6 +176,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean",
|
||||
@@ -188,6 +205,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
required: true,
|
||||
schema: Immutable.fromJS({
|
||||
@@ -219,6 +237,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
errors: List(),
|
||||
schema: Immutable.fromJS({
|
||||
@@ -252,6 +271,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "NotARealType"
|
||||
@@ -278,6 +298,7 @@ describe("<JsonSchemaComponents.JsonSchemaForm/>", function(){
|
||||
jsonSchema202012: {
|
||||
foldType,
|
||||
},
|
||||
isFileUploadIntended: makeIsFileUploadIntended(getSystemStub)
|
||||
},
|
||||
schema: Immutable.fromJS({
|
||||
type: "NotARealType",
|
||||
|
||||
Reference in New Issue
Block a user