@wonderflow/react-components
Version:
UI components from Wonderflow's Wanda design system
40 lines (39 loc) • 2.35 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { fireEvent, render } from '@testing-library/react';
import { Button } from '../button';
import { Menu } from '../menu';
import { Popover } from './popover';
describe('<Popover>', () => {
test(' it should render properly', () => {
const { container, getByTestId } = render(_jsx(Popover, { placement: "bottom-start", trigger: _jsx(Button, { kind: "flat", children: "Open popover" }), children: _jsx("div", { children: "Some Content" }) }));
const btn = getByTestId('Button');
fireEvent.click(btn);
fireEvent.blur(btn);
fireEvent.keyPress(btn, { key: 'esc' });
expect(container).not.toBeNull();
});
test(' it should render properly open', () => {
const { container, getByTestId } = render(_jsx(Popover, { placement: "bottom-start", trigger: _jsx(Button, { kind: "flat", children: "Open popover" }), open: true, matchTriggerWidth: true, children: _jsx("div", { children: "Some Content" }) }));
const btn = getByTestId('Button');
fireEvent.click(btn);
fireEvent.blur(btn);
fireEvent.keyPress(btn, { key: 'esc' });
expect(container).not.toBeNull();
});
test(' it should render properly with props', () => {
const { container } = render(_jsx(Popover, { placement: "bottom-start", trigger: _jsx(Button, { kind: "flat", children: "Open popover" }), disabled: true, children: _jsx("div", { children: "Some Content" }) }));
expect(container).not.toBeNull();
});
test(' it should open/close properly', () => {
const handleClickSpy = jest.fn();
const { getByTestId } = render(_jsx(Popover, { open: true, placement: "bottom-start", trigger: _jsx(Button, { kind: "flat", children: "Open popover" }), closeOnInsideClick: true, children: _jsx(Menu, { children: _jsx(Menu.Item, { autoFocus: true, icon: "arrow-right", value: "1", onClick: handleClickSpy, "data-testid": "menu-item", children: "menu item" }) }) }));
const btn = getByTestId('Button');
const item = getByTestId('menu-item');
fireEvent.click(btn);
const tooltip = getByTestId('tooltip');
expect(item).toBeDefined();
expect(tooltip).toBeDefined();
fireEvent.click(item);
expect(handleClickSpy).toHaveBeenCalledTimes(1);
});
});