import React from "react"; import { mount, shallow } from "@scm-manager/ui-tests/enzyme-router"; import "@scm-manager/ui-tests/enzyme"; import "@scm-manager/ui-tests/i18n"; import DeletePermissionButton from "./DeletePermissionButton"; import { confirmAlert } from "@scm-manager/ui-components"; jest.mock("@scm-manager/ui-components", () => ({ confirmAlert: jest.fn(), DeleteButton: require.requireActual("@scm-manager/ui-components").DeleteButton })); describe("DeletePermissionButton", () => { it("should render nothing, if the delete link is missing", () => { const permission = { _links: {} }; const navLink = shallow( {}} />); expect(navLink.text()).toBe(""); }); it("should render the delete icon", () => { const permission = { _links: { delete: { href: "/permission" } } }; const deleteIcon = mount( {}} />); expect(deleteIcon.html()).not.toBe(""); }); it("should open the confirm dialog on button click", () => { const permission = { _links: { delete: { href: "/permission" } } }; const button = mount( {}} />); button.find(".fa-trash").simulate("click"); expect(confirmAlert.mock.calls.length).toBe(1); }); it("should call the delete permission function with delete url", () => { const permission = { _links: { delete: { href: "/permission" } } }; let calledUrl = null; function capture(permission) { calledUrl = permission._links.delete.href; } const button = mount( ); button.find(".fa-trash").simulate("click"); expect(calledUrl).toBe("/permission"); }); });