import type { PropsWithChildren, ReactElement } from "react"; import { render } from "@testing-library/react"; import type { RenderResult } from "@testing-library/react"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; export interface RenderOptions { queryClient?: QueryClient; } export function renderWithProviders( ui: ReactElement, options: RenderOptions = {}, ): RenderResult & { queryClient: QueryClient } { const queryClient = options.queryClient ?? new QueryClient({ defaultOptions: { queries: { retry: false }, mutations: { retry: false }, }, }); const Wrapper = ({ children }: PropsWithChildren) => ( {children} ); const result = render(ui, { wrapper: Wrapper }); return Object.assign(result, { queryClient }); }