Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
alextaing committed Jul 19, 2022
1 parent aa0fa8e commit ebe1b3f
Showing 1 changed file with 103 additions and 0 deletions.
103 changes: 103 additions & 0 deletions tests/hooks/useRecentSearches.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
import { useRecentSearches } from '../../src/hooks/useRecentSearches';
import { renderHook } from '@testing-library/react-hooks';

it('returns recent searches', () => {
const verticalKey = 'people';
const { result, rerender } = renderHook(() =>
useRecentSearches(10, verticalKey)
);
const [, setRecentSearch, clearRecentSearches] = result.current;
setRecentSearch('bob');
setRecentSearch('carrie');
setRecentSearch('williard');

rerender();
const [recentSearches] = result.current;
expect(recentSearches?.length).toBe(3);
clearRecentSearches();
});

it('does not carry over old recent searches to a new vertical', () => {
let verticalKey = 'people';
const { result, rerender } = renderHook(() =>
useRecentSearches(10, verticalKey)
);
const [, setRecentPeopleSearch, clearPeopleSearches] = result.current;
setRecentPeopleSearch('bob');
setRecentPeopleSearch('carrie');
rerender();
let recentSearches = result.current[0];
expect(recentSearches?.length).toBe(2);

verticalKey = 'places';
rerender();
recentSearches = result.current[0];
expect(recentSearches?.length).toBe(0);

verticalKey = 'people';
rerender();
recentSearches = result.current[0];
expect(recentSearches?.length).toBe(2);
clearPeopleSearches();
});

it('preserves recent searches when returning to a vertical', () => {
let verticalKey = 'people';
const { result, rerender } = renderHook(() =>
useRecentSearches(10, verticalKey)
);
const [, setRecentPeopleSearch, clearPeopleSearches] = result.current;
setRecentPeopleSearch('bob');
setRecentPeopleSearch('carrie');
rerender();
let recentSearches = result.current[0];
expect(recentSearches?.length).toBe(2);

verticalKey = 'places';
rerender();
recentSearches = result.current[0];
const [, setRecentPlacesSearch, clearPlacesSearches] = result.current;
expect(recentSearches?.length).toBe(0);

setRecentPlacesSearch('yext');
rerender();
recentSearches = result.current[0];
expect(recentSearches?.length).toBe(1);

verticalKey = 'people';
rerender();
recentSearches = result.current[0];
expect(recentSearches?.length).toBe(2);

clearPeopleSearches();
clearPlacesSearches();
});

it('clears searches properly', () => {
let verticalKey = 'people';
const { result, rerender } = renderHook(() =>
useRecentSearches(10, verticalKey)
);
const [, setRecentPeopleSearch, clearPeopleSearches] = result.current;
setRecentPeopleSearch('bob');
setRecentPeopleSearch('carrie');

verticalKey = 'places';
const [, setRecentPlacesSearch, clearPlacesSearches] = result.current;
setRecentPlacesSearch('yext');

clearPeopleSearches();
clearPlacesSearches();

verticalKey = 'people';
rerender();
let recentSearches = result.current[0];
expect(recentSearches?.length).toBe(0);

verticalKey = 'places';
rerender();
recentSearches = result.current[0];
expect(recentSearches?.length).toBe(0);


});

0 comments on commit ebe1b3f

Please sign in to comment.