21 lines
1.3 KiB
TypeScript
21 lines
1.3 KiB
TypeScript
import React from 'react';
|
|
import '@testing-library/jest-dom';
|
|
import { fireEvent, render, screen } from '@testing-library/react';
|
|
import { MemoryRouter, Route, Routes, useLocation } from 'react-router-dom';
|
|
import NotFoundPage from './views/NotFoundPage';
|
|
import { I18nProvider } from './i18n/I18nProvider';
|
|
|
|
afterEach(() => localStorage.removeItem('uiLanguage'));
|
|
function Previous() { const location = useLocation(); return <div>{location.pathname + location.search}</div>; }
|
|
|
|
test.each([['en', 'Page not found', 'Go back'], ['nb', 'Siden ble ikke funnet', 'Gå tilbake']])('unknown %s page has contextual headings and preserves Back', (language, title, back) => {
|
|
localStorage.setItem('uiLanguage', language);
|
|
render(<I18nProvider><MemoryRouter initialEntries={['/previous?keep=context', '/unknown']} initialIndex={1}>
|
|
<Routes><Route path="/previous" element={<Previous />} /><Route path="*" element={<NotFoundPage />} /></Routes>
|
|
</MemoryRouter></I18nProvider>);
|
|
expect(screen.getByRole('heading', { name: title, level: 2 })).toBeInTheDocument();
|
|
expect(screen.queryByRole('heading', { name: '404' })).not.toBeInTheDocument();
|
|
fireEvent.click(screen.getByRole('button', { name: back }));
|
|
expect(screen.getByText('/previous?keep=context')).toBeInTheDocument();
|
|
});
|