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, +});