UNPKG

@kiwicom/orbit-components

Version:

<div align="center"> <a href="https://orbit.kiwi" target="_blank"> <img alt="orbit-components" src="https://orbit.kiwi/wp-content/uploads/2018/08/orbit-components.png" srcset="https://orbit.kiwi/wp-content/uploads/2018/08/orbit-components@2x.png 2x"

83 lines (64 loc) 2.35 kB
// @flow import * as React from "react"; import { shallow, mount } from "enzyme"; import ClickOutside from "../index"; describe("ClickOutside mount", () => { // $FlowExpected document.addEventListener = jest.fn(); const component = mount(<ClickOutside onClickOutside={jest.fn()}>Lorem ipsum</ClickOutside>); const instance = component.instance(); it("should mount", () => { expect(document.addEventListener).toBeCalledWith("click", instance.handleClickOutside, true); }); it("should unmount", () => { // $FlowExpected document.removeEventListener = jest.fn(); component.unmount(); expect(document.removeEventListener).toBeCalledWith("click", instance.handleClickOutside, true); }); }); describe("ClickOutside shallow", () => { it("handler", () => { const onClickOutside = jest.fn(); const wrapper = shallow( <ClickOutside onClickOutside={onClickOutside}>Lorem ipsum</ClickOutside>, ); const instance = wrapper.instance(); instance.node = document.createElement("div"); const node = document.createElement("div"); const ev = { target: node }; instance.handleClickOutside(ev); expect(onClickOutside).toBeCalledWith(ev); }); it("handler - no node", () => { const onClickOutside = jest.fn(); const wrapper = shallow( <ClickOutside onClickOutside={onClickOutside}>Lorem ipsum</ClickOutside>, ); const instance = wrapper.instance(); const node = document.createElement("div"); const ev = { target: node }; instance.handleClickOutside(ev); expect(onClickOutside).not.toBeCalled(); }); it("handler - click inside", () => { const onClickOutside = jest.fn(); const wrapper = shallow( <ClickOutside onClickOutside={onClickOutside}>Lorem ipsum</ClickOutside>, ); const instance = wrapper.instance(); instance.node = document.createElement("div"); const node = document.createElement("div"); instance.node.appendChild(node); const ev = { target: node }; instance.handleClickOutside(ev); expect(onClickOutside).not.toBeCalled(); }); it("should match snapshot", () => { const onClickOutside = jest.fn(); const wrapper = shallow( <ClickOutside onClickOutside={onClickOutside}>Lorem ipsum</ClickOutside>, ); expect(wrapper).toMatchSnapshot(); }); });