diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx index 73f490ae..31b38f93 100644 --- a/src/core/components/parameter-row.jsx +++ b/src/core/components/parameter-row.jsx @@ -31,7 +31,7 @@ export default class ParameterRow extends Component { let { specSelectors, pathMethod, rawParam } = props let { isOAS3 } = specSelectors - let parameterWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) + let parameterWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) || new Map() // fallback, if the meta lookup fails parameterWithMeta = parameterWithMeta.isEmpty() ? rawParam : parameterWithMeta @@ -87,7 +87,7 @@ export default class ParameterRow extends Component { let paramWithMeta = specSelectors.parameterWithMetaByIdentity(pathMethod, rawParam) - if (paramWithMeta.get("value") !== undefined) { + if (!paramWithMeta || paramWithMeta.get("value") !== undefined) { return } @@ -117,6 +117,10 @@ export default class ParameterRow extends Component { const { showExtensions, showCommonExtensions } = getConfigs() + if(!param) { + param = rawParam + } + // const onChangeWrapper = (value) => onChange(param, value) const JsonSchemaForm = getComponent("JsonSchemaForm") const ParamBody = getComponent("ParamBody") diff --git a/test/e2e-cypress/static/documents/bugs/4867.yaml b/test/e2e-cypress/static/documents/bugs/4867.yaml new file mode 100644 index 00000000..c8c01f43 --- /dev/null +++ b/test/e2e-cypress/static/documents/bugs/4867.yaml @@ -0,0 +1,24 @@ +openapi: 3.0.1 +info: + title: test + version: "0.1" +paths: + /test: + post: + operationId: myOp + responses: + default: + description: ok + callbacks: + subscription: + http://$request.query.url: + post: + description: myCallback + parameters: + - name: myParam + in: query + schema: + type: string + responses: + default: + description: ok \ No newline at end of file diff --git a/test/e2e-cypress/tests/bugs/4867.js b/test/e2e-cypress/tests/bugs/4867.js new file mode 100644 index 00000000..6d328236 --- /dev/null +++ b/test/e2e-cypress/tests/bugs/4867.js @@ -0,0 +1,17 @@ +describe("#4867: callback parameter rendering", () => { + it("should render parameters correctly", () => { + cy + .visit("/?url=/documents/bugs/4867.yaml") + .get("#operations-default-myOp") + .click() + .contains("Callbacks") + .click() + + .get(".callbacks-container") + .contains("http://$request.query.url") + .click() + + .get(".parameters-container") + .contains("myParam") + }) +})