Create breadcrumbs tests
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Wed, 13 Jun 2018 08:30:30 +0000 (10:30 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Wed, 13 Jun 2018 08:30:30 +0000 (10:30 +0200)
Feature #13590

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/components/breadcrumbs/breadcrumbs.test.tsx [new file with mode: 0644]

diff --git a/src/components/breadcrumbs/breadcrumbs.test.tsx b/src/components/breadcrumbs/breadcrumbs.test.tsx
new file mode 100644 (file)
index 0000000..77beb49
--- /dev/null
@@ -0,0 +1,53 @@
+// 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("<Breadcrumbs />", () => {
+
+    let onClick: () => void;
+
+    beforeEach(() => {
+        onClick = jest.fn();
+    });
+
+    it("renders one item", () => {
+        const items = [
+            {label: 'breadcrumb 1'}
+        ];
+        const breadcrumbs = mount(<Breadcrumbs items={items} onClick={onClick}  />);
+        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(<Breadcrumbs items={items} onClick={onClick}  />);
+        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 items={items} onClick={onClick}  />);
+        breadcrumbs.find(Button).at(1).simulate('click');
+        expect(onClick).toBeCalledWith(items[1]);
+    });
+
+
+});
\ No newline at end of file