15 lines
1.0 KiB
TypeScript
15 lines
1.0 KiB
TypeScript
import { QueryClientProvider } from "@tanstack/react-query";
|
||
import { render } from "@testing-library/react";
|
||
import type { ReactElement } from "react";
|
||
import { createMemoryRouter, RouterProvider } from "react-router";
|
||
import { RefreshProvider } from "../modules/jira/refresh/RefreshProvider.tsx";
|
||
import { makeQueryClient } from "../api/queryClient.ts";
|
||
|
||
// компонент под QueryClient и data-роутером в памяти: path — шаблон маршрута (для useParams), route — открытый адрес
|
||
export function renderWithProviders(ui: ReactElement, { route = "/", path = "*" }: { route?: string; path?: string } = {}) {
|
||
const client = makeQueryClient();
|
||
const router = createMemoryRouter([{ path, element: ui }, { path: "*", element: <p>другая страница</p> }],
|
||
{ initialEntries: [route] });
|
||
return { client, router, ...render(<QueryClientProvider client={client}><RefreshProvider><RouterProvider router={router} /></RefreshProvider></QueryClientProvider>) };
|
||
}
|