// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; import { mount, configure } from "enzyme"; import * as Adapter from "enzyme-adapter-react-16"; import Breadcrumbs from "./breadcrumbs"; import { Button } from "@material-ui/core"; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; configure({ adapter: new Adapter() }); describe("", () => { let onClick: () => void; beforeEach(() => { onClick = jest.fn(); }); it("renders one item", () => { const items = [ { label: 'breadcrumb 1' } ]; const breadcrumbs = mount(); expect(breadcrumbs.find(Button)).toHaveLength(1); expect(breadcrumbs.find(ChevronRightIcon)).toHaveLength(0); }); it("renders multiple items", () => { const items = [ { label: 'breadcrumb 1' }, { label: 'breadcrumb 2' } ]; const breadcrumbs = mount(); expect(breadcrumbs.find(Button)).toHaveLength(2); expect(breadcrumbs.find(ChevronRightIcon)).toHaveLength(1); }); it("calls onClick with clicked item", () => { const items = [ { label: 'breadcrumb 1' }, { label: 'breadcrumb 2' } ]; const breadcrumbs = mount(); breadcrumbs.find(Button).at(1).simulate('click'); expect(onClick).toBeCalledWith(items[1]); }); });