refactor(web): migrate to data router (createBrowserRouter) to enable useBlocker (#46)
Convert app.tsx route tree verbatim to a module-level data router via createRoutesFromElements + RouterProvider, and the test harness to createMemoryRouter + RouterProvider. The search NavLink-click test now mounts its routes as real data-router routes so RouterProvider intercepts the link (descendant <Routes> under a catch-all let it fall through to a jsdom navigation). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { render } from "@testing-library/react";
|
||||
import type { ReactElement } from "react";
|
||||
import { MemoryRouter } from "react-router-dom";
|
||||
import { createMemoryRouter, RouterProvider } from "react-router-dom";
|
||||
|
||||
import "../i18n";
|
||||
|
||||
export function renderApp(ui: ReactElement, { route = "/" } = {}) {
|
||||
const qc = new QueryClient({ defaultOptions: { queries: { retry: false } } });
|
||||
const router = createMemoryRouter([{ path: "*", element: ui }], { initialEntries: [route] });
|
||||
|
||||
return render(
|
||||
<QueryClientProvider client={qc}>
|
||||
<MemoryRouter initialEntries={[route]}>{ui}</MemoryRouter>
|
||||
<RouterProvider router={router} />
|
||||
</QueryClientProvider>,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user