1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import React from "react";
6 import { configure, shallow } from "enzyme";
8 import Adapter from "enzyme-adapter-react-16";
9 import { Breadcrumbs } from "./breadcrumbs";
10 import { Button } from "@material-ui/core";
11 import ChevronRightIcon from '@material-ui/icons/ChevronRight';
13 configure({ adapter: new Adapter() });
15 describe("<Breadcrumbs />", () => {
17 let onClick: () => void;
24 it("renders one item", () => {
26 { label: 'breadcrumb 1' }
28 const breadcrumbs = shallow(<Breadcrumbs items={items} resources={resources} onClick={onClick} onContextMenu={jest.fn()} />).dive();
29 expect(breadcrumbs.find(Button)).toHaveLength(1);
30 expect(breadcrumbs.find(ChevronRightIcon)).toHaveLength(0);
33 it("renders multiple items", () => {
35 { label: 'breadcrumb 1' },
36 { label: 'breadcrumb 2' }
38 const breadcrumbs = shallow(<Breadcrumbs items={items} resources={resources} onClick={onClick} onContextMenu={jest.fn()} />).dive();
39 expect(breadcrumbs.find(Button)).toHaveLength(2);
40 expect(breadcrumbs.find(ChevronRightIcon)).toHaveLength(1);
43 it("calls onClick with clicked item", () => {
45 { label: 'breadcrumb 1' },
46 { label: 'breadcrumb 2' }
48 const breadcrumbs = shallow(<Breadcrumbs items={items} resources={resources} onClick={onClick} onContextMenu={jest.fn()} />).dive();
49 breadcrumbs.find(Button).at(1).simulate('click');
50 expect(onClick).toBeCalledWith(items[1]);