From a0bace185804d0d263249d65af442bed2890ca7b Mon Sep 17 00:00:00 2001 From: Michal Klobukowski Date: Fri, 15 Jun 2018 10:53:05 +0200 Subject: [PATCH] Create popover tests Feature #13601 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- src/components/popover/popover.test.tsx | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/components/popover/popover.test.tsx diff --git a/src/components/popover/popover.test.tsx b/src/components/popover/popover.test.tsx new file mode 100644 index 0000000000..fa24c0cd55 --- /dev/null +++ b/src/components/popover/popover.test.tsx @@ -0,0 +1,69 @@ +// 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 Popover, { DefaultTrigger } from "./popover"; +import Button, { ButtonProps } from "@material-ui/core/Button"; + +configure({ adapter: new Adapter() }); + +describe("", () => { + it("opens on default trigger click", () => { + const popover = mount(); + popover.find(DefaultTrigger).simulate("click"); + expect(popover.state().anchorEl).toBeDefined(); + }); + + it("renders custom trigger", () => { + const popover = mount(); + expect(popover.find(Button).text()).toBe("Open popover"); + }); + + it("opens on custom trigger click", () => { + const popover = mount(); + popover.find(CustomTrigger).simulate("click"); + expect(popover.state().anchorEl).toBeDefined(); + }); + + it("renders children when opened", () => { + const popover = mount( + + + + ); + popover.find(DefaultTrigger).simulate("click"); + expect(popover.find(CustomTrigger)).toHaveLength(1); + }); + + it("does not close if closeOnContentClick is not set", () => { + const popover = mount( + + + + ); + popover.find(DefaultTrigger).simulate("click"); + popover.find(CustomTrigger).simulate("click"); + expect(popover.state().anchorEl).toBeDefined(); + }); + it("closes on content click if closeOnContentClick is set", () => { + const popover = mount( + + + + ); + popover.find(DefaultTrigger).simulate("click"); + popover.find(CustomTrigger).simulate("click"); + expect(popover.state().anchorEl).toBeUndefined(); + }); + +}); + +const CustomTrigger: React.SFC = (props) => ( + +); \ No newline at end of file -- 2.30.2