import React from 'react';
import { act, fireEvent, render } from '@testing-library/react';
import 'jest-styled-components';
import { Data } from '../../Data';
import { DataFilters } from '../../DataFilters';
import { Grommet } from '../../Grommet';
import { DataSearch } from '..';
import { createPortal, expectPortal } from '../../../utils/portal';
const data = [{ name: 'a' }, { name: 'b' }];
describe('DataSearch', () => {
window.scrollTo = jest.fn();
beforeEach(createPortal);
test('renders', () => {
const { container } = render(
,
);
expect(container.firstChild).toMatchSnapshot();
});
test('no Data', () => {
const { container } = render(
,
);
expect(container.firstChild).toMatchSnapshot();
});
test('drop', () => {
jest.useFakeTimers();
const { container, getByRole } = render(
,
);
expect(getByRole('button', { name: 'Open search' })).toBeTruthy();
expect(container.firstChild).toMatchSnapshot();
fireEvent.click(getByRole('button', { name: 'Open search' }));
// advance timers so drop can open
act(() => jest.advanceTimersByTime(200));
// snapshot on drop
expectPortal('test-data--search-control').toMatchSnapshot();
});
});