import { render } from '@testing-library/react' import * as rrd from 'react-router-dom' import PageMetadata from 'components/PageMetadata' import PAGE_METADATA from 'constants/pageMetadata' jest.mock('react-router-dom') const mockedUseLocation = rrd.useLocation as jest.Mock describe('', () => { afterAll(() => { jest.clearAllMocks() }) Object.keys(PAGE_METADATA).forEach((page) => { it(`should render correct ${page} metadata`, () => { const pageKey = page as keyof typeof PAGE_METADATA const pageMetadata = PAGE_METADATA[pageKey] mockedUseLocation.mockReturnValue({ pathname: pageKey }) const { container } = render() const titleElement = container.querySelector('title') const descriptionElement = container.querySelector('meta[name="description"]') const keywordsElement = container.querySelector('meta[name="keywords"]') expect(titleElement).toHaveTextContent(pageMetadata.title) expect(descriptionElement).toHaveAttribute('content', pageMetadata.description) expect(keywordsElement).toHaveAttribute('content', pageMetadata.keywords) }) }) })