fix(response-body): remove download button when content is empty (#8579)
Co-authored-by: Vladimír Gorej <vladimir.gorej@gmail.com>
This commit is contained in:
committed by
GitHub
parent
043d5ea455
commit
cdfc4de43e
@@ -59,11 +59,13 @@ export default class ResponseBody extends React.PureComponent {
|
||||
url = url || ""
|
||||
|
||||
if (
|
||||
/^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-Description"] && (/File Transfer/i).test(headers["Content-Description"])) ||
|
||||
(headers["content-description"] && (/File Transfer/i).test(headers["content-description"]))) {
|
||||
(/^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-Description"] && /File Transfer/i.test(headers["Content-Description"])) ||
|
||||
(headers["content-description"] && /File Transfer/i.test(headers["content-description"]))) &&
|
||||
content.size > 0
|
||||
) {
|
||||
// Download
|
||||
|
||||
if ("Blob" in window) {
|
||||
|
||||
@@ -39,4 +39,18 @@ describe("<ResponseBody />", function () {
|
||||
console.warn(wrapper.debug())
|
||||
expect(wrapper.find("highlightCodeComponent[canCopy]").length).toEqual(1)
|
||||
})
|
||||
|
||||
it("should render Download file link for non-empty response", function () {
|
||||
props.contentType = "application/octet-stream"
|
||||
props.content = new Blob(["\"test\""], { type: props.contentType })
|
||||
const wrapper = shallow(<ResponseBody {...props} />)
|
||||
expect(wrapper.text()).toMatch(/Download file/)
|
||||
})
|
||||
|
||||
it("should not render Download file link for empty response", function () {
|
||||
props.contentType = "application/octet-stream"
|
||||
props.content = new Blob()
|
||||
const wrapper = shallow(<ResponseBody {...props} />)
|
||||
expect(wrapper.text()).not.toMatch(/Download file/)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -29,6 +29,11 @@ function setUpDomEnvironment() {
|
||||
}
|
||||
copyProps(win, window) // use UI's built-in window wrapper
|
||||
copyProps(window, global)
|
||||
|
||||
// https://github.com/jsdom/jsdom/issues/1721
|
||||
if (typeof global.window.URL.createObjectURL === "undefined") {
|
||||
Object.defineProperty(global.window.URL, "createObjectURL", { value: () => "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==" })
|
||||
}
|
||||
}
|
||||
|
||||
setUpDomEnvironment()
|
||||
|
||||
Reference in New Issue
Block a user