import * as React from 'react';
import { render, screen } from '@testing-library/react';
import styles from '@patternfly/react-styles/css/components/OverflowMenu/overflow-menu';
import { OverflowMenu } from '../OverflowMenu';
import * as getResizeObserver from '../../../helpers/resizeObserver';
describe('OverflowMenu', () => {
test('md', () => {
render();
expect(screen.getByTestId('test-id')).toHaveClass(styles.overflowMenu);
});
test('lg', () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
test('xl', () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
test('basic', () => {
const { asFragment } = render(
BASIC
);
expect(asFragment()).toMatchSnapshot();
});
test('should warn on bad props', () => {
const myMock = jest.fn() as any;
global.console = { error: myMock } as any;
render(
BASIC
);
expect(myMock).toHaveBeenCalled();
});
test('should call resizeObserver on undefined containerRefElement', () => {
const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
render();
expect(resizeObserver).toHaveBeenCalledWith(undefined, expect.any(Function));
});
test('should call resizeObserver on selector ref containerRefElement', () => {
const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
render(
document.getElementById('selector-ref-test')} breakpoint={'md'}>
Selector ref test
);
const containerRef = screen.getByText('Selector ref test').parentElement?.parentElement;
expect(resizeObserver).toHaveBeenCalledWith(containerRef, expect.any(Function));
});
test('should call resizeObserver on React ref containerRefElement', () => {
const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
const containerRef = React.createRef();
render(
);
expect(resizeObserver).toHaveBeenCalledWith(containerRef.current, expect.any(Function));
});
});