UNPKG

@wonderflow/react-components

Version:

UI components from Wonderflow's Wanda design system

40 lines (39 loc) 2.35 kB
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); }); });