UNPKG

@netdata/netdata-ui

Version:

netdata UI kit

60 lines 1.81 kB
import { renderHookWithProviders, fireEvent } from "testUtilities"; import useOutsideClick from "./index"; var injectElements = function injectElements() { var div1 = document.createElement("div"); var div2 = document.createElement("div"); div1.appendChild(div2); document.body.appendChild(div1); var div3 = document.createElement("div"); document.body.appendChild(div3); return { div1: div1, div2: div2, div3: div3 }; }; it("renders", function () { var _renderHookWithProvid = renderHookWithProviders(function () { return useOutsideClick(); }), result = _renderHookWithProvid.result; expect(result.error).toBeUndefined(); }); it("trigger on outside click", function () { var _injectElements = injectElements(), div2 = _injectElements.div2, div3 = _injectElements.div3; var onClickOutside = jest.fn(); renderHookWithProviders(function () { return useOutsideClick({ current: div2 }, onClickOutside); }); fireEvent.mouseDown(div3); expect(onClickOutside).toBeCalledTimes(1); }); it("does not trigger on inner click", function () { var _injectElements2 = injectElements(), div1 = _injectElements2.div1, div2 = _injectElements2.div2; var onClickOutside = jest.fn(); renderHookWithProviders(function () { return useOutsideClick({ current: div1 }, onClickOutside); }); fireEvent.mouseDown(div2); expect(onClickOutside).toBeCalledTimes(0); }); it("does not trigger on the same element", function () { var _injectElements3 = injectElements(), div1 = _injectElements3.div1; var onClickOutside = jest.fn(); renderHookWithProviders(function () { return useOutsideClick({ current: div1 }, onClickOutside); }); fireEvent.mouseDown(div1); expect(onClickOutside).toBeCalledTimes(0); });