X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/37e43f4e19ad2bd27b15fe7f0d857218dad39055..459c67708a8f880ec98ebb9eecc10299acb91d68:/src/views-components/main-app-bar/main-app-bar.test.tsx
diff --git a/src/views-components/main-app-bar/main-app-bar.test.tsx b/src/views-components/main-app-bar/main-app-bar.test.tsx
index 75a39fd57a..69b4dd648c 100644
--- a/src/views-components/main-app-bar/main-app-bar.test.tsx
+++ b/src/views-components/main-app-bar/main-app-bar.test.tsx
@@ -5,12 +5,13 @@
import * as React from "react";
import { mount, configure } from "enzyme";
import * as Adapter from "enzyme-adapter-react-16";
-import { MainAppBar } from "./main-app-bar";
+import { MainAppBar, MainAppBarProps } from './main-app-bar';
import { SearchBar } from "~/components/search-bar/search-bar";
import { Breadcrumbs } from "~/components/breadcrumbs/breadcrumbs";
import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
import { Button, MenuItem, IconButton } from "@material-ui/core";
import { User } from "~/models/user";
+import { MemoryRouter } from 'react-router-dom';
configure({ adapter: new Adapter() });
@@ -26,12 +27,11 @@ describe("", () => {
it("renders all components and the menu for authenticated user if user prop has value", () => {
const mainAppBar = mount(
-
+
+
+
);
expect(mainAppBar.find(SearchBar)).toHaveLength(1);
expect(mainAppBar.find(Breadcrumbs)).toHaveLength(1);
@@ -41,12 +41,11 @@ describe("", () => {
it("renders only the menu for anonymous user if user prop is undefined", () => {
const menuItems = { accountMenu: [], helpMenu: [], anonymousMenu: [{ label: 'Sign in' }] };
const mainAppBar = mount(
-
+
+
+
);
expect(mainAppBar.find(SearchBar)).toHaveLength(0);
expect(mainAppBar.find(Breadcrumbs)).toHaveLength(0);
@@ -57,14 +56,11 @@ describe("", () => {
it("communicates with ", () => {
const onSearch = jest.fn();
const mainAppBar = mount(
-
+
+
+
);
const searchBar = mainAppBar.find(SearchBar);
expect(searchBar.prop("value")).toBe("search text");
@@ -73,35 +69,15 @@ describe("", () => {
expect(onSearch).toBeCalledWith("new search text");
});
- it("communicates with ", () => {
- const items = [{ label: "breadcrumb 1" }];
- const onBreadcrumbClick = jest.fn();
- const mainAppBar = mount(
-
- );
- const breadcrumbs = mainAppBar.find(Breadcrumbs);
- expect(breadcrumbs.prop("items")).toBe(items);
- breadcrumbs.prop("onClick")(items[0]);
- expect(onBreadcrumbClick).toBeCalledWith(items[0]);
- });
-
it("communicates with menu", () => {
const onMenuItemClick = jest.fn();
- const menuItems = { accountMenu: [{label: "log out"}], helpMenu: [], anonymousMenu: [] };
+ const menuItems = { accountMenu: [{ label: "log out" }], helpMenu: [], anonymousMenu: [] };
const mainAppBar = mount(
-
+
+
+
);
mainAppBar.find(DropdownMenu).at(0).find(IconButton).simulate("click");
@@ -109,3 +85,20 @@ describe("", () => {
expect(onMenuItemClick).toBeCalledWith(menuItems.accountMenu[0]);
});
});
+
+const Breadcrumbs = () => Breadcrumbs;
+
+const mockMainAppBarProps = (props: Partial): MainAppBarProps => ({
+ searchText: '',
+ breadcrumbs: Breadcrumbs,
+ menuItems: {
+ accountMenu: [],
+ helpMenu: [],
+ anonymousMenu: [],
+ },
+ buildInfo: '',
+ onSearch: jest.fn(),
+ onMenuItemClick: jest.fn(),
+ onDetailsPanelToggle: jest.fn(),
+ ...props,
+});