diff --git a/src/core/components/model-example.jsx b/src/core/components/model-example.jsx index 54c726c84fc..307e48788a4 100644 --- a/src/core/components/model-example.jsx +++ b/src/core/components/model-example.jsx @@ -19,7 +19,7 @@ export default class ModelExample extends React.Component { constructor(props, context) { super(props, context) - let { getConfigs, isExecute } = this.props + let { getConfigs, isExecute, schema } = this.props let { defaultModelRendering } = getConfigs() let activeTab = defaultModelRendering @@ -28,6 +28,10 @@ export default class ModelExample extends React.Component { activeTab = "example" } + if (!schema) { + activeTab = "example" + } + if(isExecute) { activeTab = "example" } diff --git a/test/e2e-cypress/e2e/features/default-model-rendering.cy.js b/test/e2e-cypress/e2e/features/default-model-rendering.cy.js new file mode 100644 index 00000000000..4c23bbeaa2c --- /dev/null +++ b/test/e2e-cypress/e2e/features/default-model-rendering.cy.js @@ -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") + }) +}) diff --git a/test/e2e-cypress/static/documents/features/default-model-rendering.yaml b/test/e2e-cypress/static/documents/features/default-model-rendering.yaml new file mode 100644 index 00000000000..43b3eb35f18 --- /dev/null +++ b/test/e2e-cypress/static/documents/features/default-model-rendering.yaml @@ -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: {}