2018-02-09 21:34:14 -05:00
|
|
|
/*
|
2021-04-19 13:30:42 -04:00
|
|
|
* Copyright (c) 2015-2021 MinIO, Inc.
|
2018-02-09 21:34:14 -05:00
|
|
|
*
|
2021-04-19 13:30:42 -04:00
|
|
|
* This file is part of MinIO Object Storage stack
|
2018-02-09 21:34:14 -05:00
|
|
|
*
|
2021-04-19 13:30:42 -04:00
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
2018-02-09 21:34:14 -05:00
|
|
|
*
|
2021-04-19 13:30:42 -04:00
|
|
|
* This program is distributed in the hope that it will be useful
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2018-02-09 21:34:14 -05:00
|
|
|
*/
|
|
|
|
|
|
|
|
import React from "react"
|
|
|
|
import { shallow } from "enzyme"
|
|
|
|
import { ObjectItem } from "../ObjectItem"
|
|
|
|
|
|
|
|
describe("ObjectItem", () => {
|
|
|
|
it("should render without crashing", () => {
|
|
|
|
shallow(<ObjectItem name={"test"} />)
|
|
|
|
})
|
|
|
|
|
|
|
|
it("should render with content type", () => {
|
|
|
|
const wrapper = shallow(<ObjectItem name={"test.jpg"} contentType={""} />)
|
2018-03-26 15:49:12 -04:00
|
|
|
expect(wrapper.prop("data-type")).toBe("image")
|
2018-02-09 21:34:14 -05:00
|
|
|
})
|
|
|
|
|
2018-06-07 23:43:51 -04:00
|
|
|
it("shouldn't call onClick when the object isclicked", () => {
|
|
|
|
const onClick = jest.fn()
|
2020-06-22 14:03:24 -04:00
|
|
|
const checkObject = jest.fn()
|
|
|
|
const wrapper = shallow(
|
|
|
|
<ObjectItem name={"test"} checkObject={checkObject} />
|
|
|
|
)
|
2018-06-07 23:43:51 -04:00
|
|
|
wrapper.find("a").simulate("click", { preventDefault: jest.fn() })
|
|
|
|
expect(onClick).not.toHaveBeenCalled()
|
|
|
|
})
|
|
|
|
|
|
|
|
it("should call onClick when the folder isclicked", () => {
|
|
|
|
const onClick = jest.fn()
|
|
|
|
const wrapper = shallow(<ObjectItem name={"test/"} onClick={onClick} />)
|
2018-06-07 15:02:02 -04:00
|
|
|
wrapper.find("a").simulate("click", { preventDefault: jest.fn() })
|
2018-06-07 23:43:51 -04:00
|
|
|
expect(onClick).toHaveBeenCalled()
|
|
|
|
})
|
|
|
|
|
|
|
|
it("should call checkObject when the object/prefix is checked", () => {
|
|
|
|
const checkObject = jest.fn()
|
|
|
|
const wrapper = shallow(
|
|
|
|
<ObjectItem name={"test"} checked={false} checkObject={checkObject} />
|
|
|
|
)
|
|
|
|
wrapper.find("input[type='checkbox']").simulate("change")
|
2018-02-20 21:00:43 -05:00
|
|
|
expect(checkObject).toHaveBeenCalledWith("test")
|
|
|
|
})
|
|
|
|
|
2018-06-07 23:43:51 -04:00
|
|
|
it("should render checked checkbox", () => {
|
2018-02-20 21:00:43 -05:00
|
|
|
const wrapper = shallow(<ObjectItem name={"test"} checked={true} />)
|
2018-06-07 23:43:51 -04:00
|
|
|
expect(wrapper.find("input[type='checkbox']").prop("checked")).toBeTruthy()
|
2018-02-20 21:00:43 -05:00
|
|
|
})
|
|
|
|
|
2018-06-07 23:43:51 -04:00
|
|
|
it("should call uncheckObject when the object/prefix is unchecked", () => {
|
2020-06-22 14:03:24 -04:00
|
|
|
const checkObject = jest.fn()
|
2018-02-20 21:00:43 -05:00
|
|
|
const uncheckObject = jest.fn()
|
2018-06-07 23:43:51 -04:00
|
|
|
const wrapper = shallow(
|
2020-06-22 14:03:24 -04:00
|
|
|
<ObjectItem
|
|
|
|
name={"test"}
|
|
|
|
checked={true}
|
|
|
|
checkObject={checkObject}
|
|
|
|
uncheckObject={uncheckObject}
|
|
|
|
/>
|
2018-06-07 23:43:51 -04:00
|
|
|
)
|
|
|
|
wrapper.find("input[type='checkbox']").simulate("change")
|
2018-02-20 21:00:43 -05:00
|
|
|
expect(uncheckObject).toHaveBeenCalledWith("test")
|
|
|
|
})
|
2018-02-09 21:34:14 -05:00
|
|
|
})
|