storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/browser/app/js/objects/__tests__/ObjectActions.test.js (about) 1 /* 2 * MinIO Cloud Storage (C) 2018 MinIO, Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 import React from "react" 18 import { shallow } from "enzyme" 19 import { ObjectActions } from "../ObjectActions" 20 21 describe("ObjectActions", () => { 22 it("should render without crashing", () => { 23 shallow(<ObjectActions object={{ name: "obj1" }} currentPrefix={"pre1/"} />) 24 }) 25 26 it("should show DeleteObjectConfirmModal when delete action is clicked", () => { 27 const wrapper = shallow( 28 <ObjectActions object={{ name: "obj1" }} currentPrefix={"pre1/"} /> 29 ) 30 wrapper 31 .find("a") 32 .last() 33 .simulate("click", { preventDefault: jest.fn() }) 34 expect(wrapper.state("showDeleteConfirmation")).toBeTruthy() 35 expect(wrapper.find("DeleteObjectConfirmModal").length).toBe(1) 36 }) 37 38 it("should hide DeleteObjectConfirmModal when Cancel button is clicked", () => { 39 const wrapper = shallow( 40 <ObjectActions object={{ name: "obj1" }} currentPrefix={"pre1/"} /> 41 ) 42 wrapper 43 .find("a") 44 .last() 45 .simulate("click", { preventDefault: jest.fn() }) 46 wrapper.find("DeleteObjectConfirmModal").prop("hideDeleteConfirmModal")() 47 wrapper.update() 48 expect(wrapper.state("showDeleteConfirmation")).toBeFalsy() 49 expect(wrapper.find("DeleteObjectConfirmModal").length).toBe(0) 50 }) 51 52 it("should call deleteObject with object name", () => { 53 const deleteObject = jest.fn() 54 const wrapper = shallow( 55 <ObjectActions 56 object={{ name: "obj1" }} 57 currentPrefix={"pre1/"} 58 deleteObject={deleteObject} 59 /> 60 ) 61 wrapper 62 .find("a") 63 .last() 64 .simulate("click", { preventDefault: jest.fn() }) 65 wrapper.find("DeleteObjectConfirmModal").prop("deleteObject")() 66 expect(deleteObject).toHaveBeenCalledWith("obj1") 67 }) 68 69 70 it("should call downloadObject when single object is selected and download button is clicked", () => { 71 const downloadObject = jest.fn() 72 const wrapper = shallow( 73 <ObjectActions 74 object={{ name: "obj1" }} 75 currentPrefix={"pre1/"} 76 downloadObject={downloadObject} /> 77 ) 78 wrapper 79 .find("a") 80 .at(1) 81 .simulate("click", { preventDefault: jest.fn() }) 82 expect(downloadObject).toHaveBeenCalled() 83 }) 84 85 86 it("should show PreviewObjectModal when preview action is clicked", () => { 87 const wrapper = shallow( 88 <ObjectActions 89 object={{ name: "obj1", contentType: "image/jpeg"}} 90 currentPrefix={"pre1/"} /> 91 ) 92 wrapper 93 .find("a") 94 .at(1) 95 .simulate("click", { preventDefault: jest.fn() }) 96 expect(wrapper.state("showPreview")).toBeTruthy() 97 expect(wrapper.find("PreviewObjectModal").length).toBe(1) 98 }) 99 100 it("should hide PreviewObjectModal when cancel button is clicked", () => { 101 const wrapper = shallow( 102 <ObjectActions 103 object={{ name: "obj1" , contentType: "image/jpeg"}} 104 currentPrefix={"pre1/"} /> 105 ) 106 wrapper 107 .find("a") 108 .at(1) 109 .simulate("click", { preventDefault: jest.fn() }) 110 wrapper.find("PreviewObjectModal").prop("hidePreviewModal")() 111 wrapper.update() 112 expect(wrapper.state("showPreview")).toBeFalsy() 113 expect(wrapper.find("PreviewObjectModal").length).toBe(0) 114 }) 115 it("should not show PreviewObjectModal when preview action is clicked if object is not an image", () => { 116 const wrapper = shallow( 117 <ObjectActions 118 object={{ name: "obj1"}} 119 currentPrefix={"pre1/"} /> 120 ) 121 expect(wrapper 122 .find("a") 123 .length).toBe(3) // find only the other 2 124 }) 125 126 it("should call shareObject with object and expiry", () => { 127 const shareObject = jest.fn() 128 const wrapper = shallow( 129 <ObjectActions 130 object={{ name: "obj1" }} 131 currentPrefix={"pre1/"} 132 shareObject={shareObject} 133 /> 134 ) 135 wrapper 136 .find("a") 137 .first() 138 .simulate("click", { preventDefault: jest.fn() }) 139 expect(shareObject).toHaveBeenCalledWith("obj1", 5, 0, 0) 140 }) 141 142 it("should render ShareObjectModal when an object is shared", () => { 143 const wrapper = shallow( 144 <ObjectActions 145 object={{ name: "obj1" }} 146 currentPrefix={"pre1/"} 147 showShareObjectModal={true} 148 shareObjectName={"obj1"} 149 /> 150 ) 151 expect(wrapper.find("Connect(ShareObjectModal)").length).toBe(1) 152 }) 153 154 it("shouldn't render ShareObjectModal when the names of the objects don't match", () => { 155 const wrapper = shallow( 156 <ObjectActions 157 object={{ name: "obj1" }} 158 currentPrefix={"pre1/"} 159 showShareObjectModal={true} 160 shareObjectName={"obj2"} 161 /> 162 ) 163 expect(wrapper.find("Connect(ShareObjectModal)").length).toBe(0) 164 }) 165 })