fix: gracefully handle empty request bodies (via #4859)
This commit is contained in:
@@ -29,12 +29,12 @@ const RequestBody = ({
|
|||||||
|
|
||||||
const mediaTypeValue = requestBodyContent.get(contentType)
|
const mediaTypeValue = requestBodyContent.get(contentType)
|
||||||
|
|
||||||
const isObjectContent = mediaTypeValue.getIn(["schema", "type"]) === "object"
|
|
||||||
|
|
||||||
if(!mediaTypeValue) {
|
if(!mediaTypeValue) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isObjectContent = mediaTypeValue.getIn(["schema", "type"]) === "object"
|
||||||
|
|
||||||
if(
|
if(
|
||||||
contentType === "application/octet-stream"
|
contentType === "application/octet-stream"
|
||||||
|| contentType.indexOf("image/") === 0
|
|| contentType.indexOf("image/") === 0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React, { Component } from "react"
|
import React, { Component } from "react"
|
||||||
import PropTypes from "prop-types"
|
import PropTypes from "prop-types"
|
||||||
import Im, { Map } from "immutable"
|
import Im, { Map, List } from "immutable"
|
||||||
import ImPropTypes from "react-immutable-proptypes"
|
import ImPropTypes from "react-immutable-proptypes"
|
||||||
import { OAS3ComponentWrapFactory } from "../helpers"
|
import { OAS3ComponentWrapFactory } from "../helpers"
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ class Parameters extends Component {
|
|||||||
<label>
|
<label>
|
||||||
<ContentType
|
<ContentType
|
||||||
value={oas3Selectors.requestContentType(...pathMethod)}
|
value={oas3Selectors.requestContentType(...pathMethod)}
|
||||||
contentTypes={ requestBody.get("content").keySeq() }
|
contentTypes={ requestBody.get("content", List()).keySeq() }
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
oas3Actions.setRequestContentType({ value, pathMethod })
|
oas3Actions.setRequestContentType({ value, pathMethod })
|
||||||
}}
|
}}
|
||||||
|
|||||||
12
test/e2e-cypress/static/documents/bugs/4838.yaml
Normal file
12
test/e2e-cypress/static/documents/bugs/4838.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
openapi: "3.0.0"
|
||||||
|
|
||||||
|
paths:
|
||||||
|
/some/route:
|
||||||
|
post:
|
||||||
|
description: This should be visible
|
||||||
|
tags:
|
||||||
|
- Some
|
||||||
|
requestBody: {}
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Description
|
||||||
11
test/e2e-cypress/tests/bugs/4838.js
Normal file
11
test/e2e-cypress/tests/bugs/4838.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import repeat from "lodash/repeat"
|
||||||
|
|
||||||
|
describe("#4838: empty request bodies result in endless loading", () => {
|
||||||
|
it("should render model content changes correctly", () => {
|
||||||
|
cy
|
||||||
|
.visit("/?url=/documents/bugs/4838.yaml")
|
||||||
|
.get("#operations-Some-post_some_route")
|
||||||
|
.click()
|
||||||
|
.contains("This should be visible")
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user