fix: avoid rendering empty response schemas (#9667)
Refs #9666 Co-authored-by: Pierre Paysant-Le Roux <ppaysant@gmail.com>
This commit is contained in:
@@ -19,7 +19,7 @@ export default class ModelExample extends React.Component {
|
|||||||
|
|
||||||
constructor(props, context) {
|
constructor(props, context) {
|
||||||
super(props, context)
|
super(props, context)
|
||||||
let { getConfigs, isExecute } = this.props
|
let { getConfigs, isExecute, schema } = this.props
|
||||||
let { defaultModelRendering } = getConfigs()
|
let { defaultModelRendering } = getConfigs()
|
||||||
|
|
||||||
let activeTab = defaultModelRendering
|
let activeTab = defaultModelRendering
|
||||||
@@ -28,6 +28,10 @@ export default class ModelExample extends React.Component {
|
|||||||
activeTab = "example"
|
activeTab = "example"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!schema) {
|
||||||
|
activeTab = "example"
|
||||||
|
}
|
||||||
|
|
||||||
if(isExecute) {
|
if(isExecute) {
|
||||||
activeTab = "example"
|
activeTab = "example"
|
||||||
}
|
}
|
||||||
|
|||||||
39
test/e2e-cypress/e2e/features/default-model-rendering.cy.js
Normal file
39
test/e2e-cypress/e2e/features/default-model-rendering.cy.js
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* @prettier
|
||||||
|
*/
|
||||||
|
|
||||||
|
describe("defaultModelRendering set to model", () => {
|
||||||
|
it("should not render schemas for responses with no defined schemas", () => {
|
||||||
|
cy.visit(
|
||||||
|
"/?defaultModelRendering=model&url=/documents/features/default-model-rendering.yaml"
|
||||||
|
)
|
||||||
|
.get("#operations-default-get_")
|
||||||
|
.click()
|
||||||
|
.get(
|
||||||
|
"#operations-default-get_ [data-code=200] .response-col_description__inner"
|
||||||
|
)
|
||||||
|
.contains("no content")
|
||||||
|
.get("#operations-default-get_ [data-code=200] .model-example")
|
||||||
|
.should("not.exist")
|
||||||
|
.get(
|
||||||
|
"#operations-default-get_ [data-code=201] .response-col_description__inner"
|
||||||
|
)
|
||||||
|
.contains("no schema but an example")
|
||||||
|
.get("#operations-default-get_ [data-code=201] .model-example")
|
||||||
|
.contains('"foo": "bar"')
|
||||||
|
.should("exist")
|
||||||
|
.get(
|
||||||
|
"#operations-default-get_ [data-code=202] .response-col_description__inner"
|
||||||
|
)
|
||||||
|
.contains("no schema but examples")
|
||||||
|
.get("#operations-default-get_ [data-code=202] .model-example")
|
||||||
|
.contains('"foo": "bar"')
|
||||||
|
.should("exist")
|
||||||
|
.get(
|
||||||
|
"#operations-default-get_ [data-code=203] .response-col_description__inner"
|
||||||
|
)
|
||||||
|
.contains("no schema no example")
|
||||||
|
.get("#operations-default-get_ [data-code=203] .model-example")
|
||||||
|
.should("not.exist")
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
openapi: 3.1.0
|
||||||
|
info:
|
||||||
|
title: Empty response test case
|
||||||
|
version: '1'
|
||||||
|
paths:
|
||||||
|
'/':
|
||||||
|
get:
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: no content
|
||||||
|
'201':
|
||||||
|
description: no schema but an example
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
example:
|
||||||
|
foo: bar
|
||||||
|
'202':
|
||||||
|
description: no schema but examples
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
examples:
|
||||||
|
first:
|
||||||
|
value:
|
||||||
|
foo: bar
|
||||||
|
second:
|
||||||
|
value:
|
||||||
|
baz: foobar
|
||||||
|
'203':
|
||||||
|
description: no schema no example
|
||||||
|
content:
|
||||||
|
application/json: {}
|
||||||
Reference in New Issue
Block a user