diff --git a/tests/common/testHelper.tsx b/tests/common/testHelper.tsx index f80c492b..9953ca6c 100644 --- a/tests/common/testHelper.tsx +++ b/tests/common/testHelper.tsx @@ -1,8 +1,26 @@ import React, { ReactNode } from 'react'; import { MemoryRouter } from 'react-router'; +import { Route, Routes } from 'react-router-dom'; -export const withRouter = (component: ReactNode) => (<> - - {component} - -) +/** + * Wraps a component with a MemoryRouter. + * @param component - The React node to wrap. + * @param initialEntry - (Optional) The initial route for the router. + * @param path - (Optional) The route path to render the component. + */ +export const withRouter = (component: ReactNode, initialEntry?: string, path?: string) => { + if (initialEntry && path) { + return (<> + + + + + + ); + } + return (<> + + {component} + + ) +} diff --git a/tests/components/resources/ResourceDetailsPage.test.tsx b/tests/components/resources/ResourceDetailsPage.test.tsx index f534789f..b853bef7 100644 --- a/tests/components/resources/ResourceDetailsPage.test.tsx +++ b/tests/components/resources/ResourceDetailsPage.test.tsx @@ -1,9 +1,9 @@ import { render, screen, waitFor } from '@testing-library/react'; import React from 'react'; import '@testing-library/jest-dom'; -import { MemoryRouter, Route, Routes } from 'react-router-dom'; import ResourceDetailsPage from '../../../src/components/resources/ResourceDetailsPage'; +import { withRouter } from '../../common/testHelper'; jest.mock('@vcmap/core', () => ({ VcsApp: jest.fn().mockImplementation(() => ({ @@ -54,13 +54,7 @@ describe('ResourceDetailsPage', () => { it('should render a resource detail page', async () => { - render( - - - }/> - - - ); + render(withRouter(, '/resources/123', '/resources/:resourceId')); await waitFor(() => { expect(screen.getByRole('heading', { name: /Resource 1/i })).toBeInTheDocument();