1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-24 17:51:14 +02:00
unleash.unleash/frontend/src/component/common/Search/Search.test.tsx
Jaanus Sellin 848415c5ca
feat: add history for search (#5651)
This is simple refactor. Just moving history part out of suggestions
component.
2023-12-15 13:22:19 +02:00

69 lines
1.9 KiB
TypeScript

import { createLocalStorage } from 'utils/createLocalStorage';
import { render } from 'utils/testRenderer';
import { fireEvent, screen } from '@testing-library/react';
import { Search } from './Search';
import { SEARCH_INPUT } from 'utils/testIds';
const testDisplayComponent = (
<Search
hasFilters
onChange={() => {}}
id='localStorageId'
getSearchContext={() => ({
data: [],
columns: [],
searchValue: '',
})}
/>
);
test('should read saved query from local storage', async () => {
const { setValue } = createLocalStorage('Search:localStorageId:v1', {});
setValue({
query: 'oldquery',
});
render(testDisplayComponent);
const input = screen.getByTestId(SEARCH_INPUT);
input.focus();
await screen.findByText('oldquery'); // local storage saved search query
screen.getByText('oldquery').click(); // click history hint
expect(screen.getByDisplayValue('oldquery')).toBeInTheDocument(); // check if input updates
fireEvent.change(input, { target: { value: 'newquery' } });
expect(screen.getByText('newquery')).toBeInTheDocument(); // new saved query updated
});
test('should update saved query without local storage', async () => {
render(testDisplayComponent);
const input = screen.getByTestId(SEARCH_INPUT);
input.focus();
fireEvent.change(input, { target: { value: 'newquery' } });
expect(screen.getByText('newquery')).toBeInTheDocument(); // new saved query updated
});
test('should still render history if no search context', async () => {
const { setValue } = createLocalStorage('Search:localStorageId:v1', {});
setValue({
query: 'oldquery',
});
render(<Search onChange={() => {}} id='localStorageId' />);
const input = screen.getByTestId(SEARCH_INPUT);
input.focus();
await screen.findByText('oldquery');
});