From 507a2bca83eadb6c9dd8c792deeed7d56dced6cb Mon Sep 17 00:00:00 2001 From: David Leek Date: Thu, 13 Jun 2024 08:38:51 +0200 Subject: [PATCH] chore: add some tests for the useRecentlyVisited hook (#7380) --- .../src/hooks/useRecentlyVisited.test.tsx | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 frontend/src/hooks/useRecentlyVisited.test.tsx diff --git a/frontend/src/hooks/useRecentlyVisited.test.tsx b/frontend/src/hooks/useRecentlyVisited.test.tsx new file mode 100644 index 0000000000..685efc60d7 --- /dev/null +++ b/frontend/src/hooks/useRecentlyVisited.test.tsx @@ -0,0 +1,68 @@ +import type { FC } from 'react'; +import { render, screen } from '@testing-library/react'; +import { + MemoryRouter as Router, + Routes, + Route, + Navigate, + RouterProvider, + createMemoryRouter, +} from 'react-router-dom'; +import { useRecentlyVisited } from './useRecentlyVisited'; + +const RouteNameRender: FC<{}> = () => { + const { lastVisited } = useRecentlyVisited(); + return ( +
+ {lastVisited.map((visited) => ( +
{visited.pathName}
+ ))} +
+ ); +}; + +beforeEach(() => { + window.localStorage.clear(); +}); + +test('checks that routes that exist in routes.ts gets added to lastVisited', async () => { + render( + + + + } /> + } /> + } + /> + } + /> + } + /> + segment div} /> + + , + ); + await screen.findByText('/search'); + await screen.findByText('/integrations'); + await screen.findByText('/segments'); + await screen.findByText('segment div'); +}); + +test('visiting gets added to the list', async () => { + const router = createMemoryRouter([ + { path: '/search', element: }, + { path: '/projects', element: }, + { path: '/', element: }, + ]); + render(); + router.navigate('/search'); + await screen.findByText('/search'); + router.navigate('/projects'); + await screen.findByText('/projects'); +});