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 || ""
|
url = url || ""
|
||||||
|
|
||||||
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
|
||||||
|
) {
|
||||||
// Download
|
// Download
|
||||||
|
|
||||||
if ("Blob" in window) {
|
if ("Blob" in window) {
|
||||||
|
|||||||
@@ -39,4 +39,18 @@ describe("<ResponseBody />", function () {
|
|||||||
console.warn(wrapper.debug())
|
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 () {
|
||||||
|
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(win, window) // use UI's built-in window wrapper
|
||||||
copyProps(window, global)
|
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()
|
setUpDomEnvironment()
|
||||||
|
|||||||
Reference in New Issue
Block a user