1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-10-27 11:02:16 +01:00
unleash.unleash/frontend/src/component/common/Search/Search.test.tsx
Gastón Fournier abe160eb7d
feat: Unleash v7 ESM migration (#9877)
We're migrating to ESM, which will allow us to import the latest
versions of our dependencies.

Co-Authored-By: Christopher Kolstad <chriswk@getunleash.io>
2025-05-14 09:47:12 +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.tsx';
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(await screen.findByDisplayValue('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');
});