import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { render, type RenderOptions } from '@testing-library/react'; import { MemoryRouter, type MemoryRouterProps } from 'react-router-dom'; import type { ReactElement, ReactNode } from 'react'; import { ToastProvider } from '@/hooks/useToast'; interface WrapperOptions { routerProps?: MemoryRouterProps; } export function makeQueryClient(): QueryClient { return new QueryClient({ defaultOptions: { queries: { retry: false, gcTime: 0, staleTime: 0 }, mutations: { retry: false }, }, }); } export function renderWithProviders( ui: ReactElement, { routerProps, ...rtlOptions }: WrapperOptions & Omit = {}, ) { const client = makeQueryClient(); const Wrapper = ({ children }: { children: ReactNode }) => ( {children} ); return { ...render(ui, { wrapper: Wrapper, ...rtlOptions }), client }; }