fix(response-body): show download button both for non-empty Blob and string responses (#9343)
Co-authored-by: Vladimír Gorej <vladimir.gorej@gmail.com> Refs #9298
This commit is contained in:
@@ -60,11 +60,11 @@ export default class ResponseBody extends React.PureComponent {
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
(/^application\/octet-stream/i.test(contentType) ||
|
(/^application\/octet-stream/i.test(contentType) ||
|
||||||
(headers["Content-Disposition"] && /attachment/i.test(headers["Content-Disposition"])) ||
|
(headers["Content-Disposition"] && /attachment/i.test(headers["Content-Disposition"])) ||
|
||||||
(headers["content-disposition"] && /attachment/i.test(headers["content-disposition"])) ||
|
(headers["content-disposition"] && /attachment/i.test(headers["content-disposition"])) ||
|
||||||
(headers["Content-Description"] && /File Transfer/i.test(headers["Content-Description"])) ||
|
(headers["Content-Description"] && /File Transfer/i.test(headers["Content-Description"])) ||
|
||||||
(headers["content-description"] && /File Transfer/i.test(headers["content-description"]))) &&
|
(headers["content-description"] && /File Transfer/i.test(headers["content-description"]))) &&
|
||||||
content.size > 0
|
(content.size > 0 || content.length > 0)
|
||||||
) {
|
) {
|
||||||
// Download
|
// Download
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ describe("<ResponseBody />", function () {
|
|||||||
it("renders ResponseBody as 'image/svg'", function () {
|
it("renders ResponseBody as 'image/svg'", function () {
|
||||||
props.contentType = "image/svg"
|
props.contentType = "image/svg"
|
||||||
const wrapper = shallow(<ResponseBody {...props} />)
|
const wrapper = shallow(<ResponseBody {...props} />)
|
||||||
console.warn(wrapper.debug())
|
|
||||||
expect(wrapper.find("highlightCodeComponent").length).toEqual(0)
|
expect(wrapper.find("highlightCodeComponent").length).toEqual(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -36,17 +35,26 @@ describe("<ResponseBody />", function () {
|
|||||||
props.contentType = "text/plain"
|
props.contentType = "text/plain"
|
||||||
props.content = "test text"
|
props.content = "test text"
|
||||||
const wrapper = shallow(<ResponseBody {...props} />)
|
const wrapper = shallow(<ResponseBody {...props} />)
|
||||||
console.warn(wrapper.debug())
|
|
||||||
expect(wrapper.find("highlightCodeComponent[canCopy]").length).toEqual(1)
|
expect(wrapper.find("highlightCodeComponent[canCopy]").length).toEqual(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should render Download file link for non-empty response", function () {
|
it("should render Download file link for non-empty Blob response", function () {
|
||||||
props.contentType = "application/octet-stream"
|
props.contentType = "application/octet-stream"
|
||||||
props.content = new Blob(["\"test\""], { type: props.contentType })
|
props.content = new Blob(["\"test\""], { type: props.contentType })
|
||||||
const wrapper = shallow(<ResponseBody {...props} />)
|
const wrapper = shallow(<ResponseBody {...props} />)
|
||||||
expect(wrapper.text()).toMatch(/Download file/)
|
expect(wrapper.text()).toMatch(/Download file/)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should render Download file link for non-empty text response", function () {
|
||||||
|
props.contentType = "text/plain"
|
||||||
|
props.content = "test text"
|
||||||
|
props.headers = {
|
||||||
|
"Content-Disposition": "attachment; filename=\"test.txt\"",
|
||||||
|
}
|
||||||
|
const wrapper = shallow(<ResponseBody {...props} />)
|
||||||
|
expect(wrapper.text()).toMatch(/Download file/)
|
||||||
|
})
|
||||||
|
|
||||||
it("should not render Download file link for empty response", function () {
|
it("should not render Download file link for empty response", function () {
|
||||||
props.contentType = "application/octet-stream"
|
props.contentType = "application/octet-stream"
|
||||||
props.content = new Blob()
|
props.content = new Blob()
|
||||||
|
|||||||
Reference in New Issue
Block a user