storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/browser/app/js/objects/__tests__/ObjectsBulkActions.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 { ObjectsBulkActions } from "../ObjectsBulkActions"
    20  
    21  describe("ObjectsBulkActions", () => {
    22    it("should render without crashing", () => {
    23      shallow(<ObjectsBulkActions checkedObjects={[]} />)
    24    })
    25  
    26    it("should show actions when checkObjectsCount is more than 0", () => {
    27      const wrapper = shallow(<ObjectsBulkActions checkedObjects={["test"]} />)
    28      expect(wrapper.hasClass("list-actions-toggled")).toBeTruthy()
    29    })
    30  
    31    it("should call downloadObject when single object is selected and download button is clicked", () => {
    32      const downloadObject = jest.fn()
    33      const clearChecked = jest.fn()
    34      const wrapper = shallow(
    35        <ObjectsBulkActions
    36          checkedObjects={["test"]}
    37          downloadObject={downloadObject}
    38          clearChecked={clearChecked}
    39        />
    40      )
    41      wrapper.find("#download-checked").simulate("click")
    42      expect(downloadObject).toHaveBeenCalled()
    43    })
    44  
    45    it("should call downloadChecked when a folder is selected and download button is clicked", () => {
    46      const downloadChecked = jest.fn()
    47      const wrapper = shallow(
    48        <ObjectsBulkActions
    49          checkedObjects={["test/"]}
    50          downloadChecked={downloadChecked}
    51        />
    52      )
    53      wrapper.find("#download-checked").simulate("click")
    54      expect(downloadChecked).toHaveBeenCalled()
    55    })
    56  
    57    it("should call downloadChecked when multiple objects are selected and download button is clicked", () => {
    58      const downloadChecked = jest.fn()
    59      const wrapper = shallow(
    60        <ObjectsBulkActions
    61          checkedObjects={["test1", "test2"]}
    62          downloadChecked={downloadChecked}
    63        />
    64      )
    65      wrapper.find("#download-checked").simulate("click")
    66      expect(downloadChecked).toHaveBeenCalled()
    67    })
    68  
    69    it("should call clearChecked when close button is clicked", () => {
    70      const clearChecked = jest.fn()
    71      const wrapper = shallow(
    72        <ObjectsBulkActions checkedObjects={["test"]} clearChecked={clearChecked} />
    73      )
    74      wrapper.find("#close-bulk-actions").simulate("click")
    75      expect(clearChecked).toHaveBeenCalled()
    76    })
    77  
    78    it("shoud show DeleteObjectConfirmModal when delete-checked button is clicked", () => {
    79      const wrapper = shallow(<ObjectsBulkActions checkedObjects={["test"]} />)
    80      wrapper.find("#delete-checked").simulate("click")
    81      wrapper.update()
    82      expect(wrapper.find("DeleteObjectConfirmModal").length).toBe(1)
    83    })
    84  
    85    it("shoud call deleteChecked when Delete is clicked on confirmation modal", () => {
    86      const deleteChecked = jest.fn()
    87      const wrapper = shallow(
    88        <ObjectsBulkActions
    89          checkedObjects={["test"]}
    90          deleteChecked={deleteChecked}
    91        />
    92      )
    93      wrapper.find("#delete-checked").simulate("click")
    94      wrapper.update()
    95      wrapper.find("DeleteObjectConfirmModal").prop("deleteObject")()
    96      expect(deleteChecked).toHaveBeenCalled()
    97      wrapper.update()
    98      expect(wrapper.find("DeleteObjectConfirmModal").length).toBe(0)
    99    })
   100  })