@netdata/netdata-ui
Version:
netdata UI kit
60 lines • 1.81 kB
JavaScript
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);
});