import { type ReactElement } from 'react'; import { render, type RenderOptions } from '@testing-library/react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { MemoryRouter } from 'react-router-dom'; import { SessionProvider } from '../app/providers/SessionProvider'; interface CustomRenderOptions extends Omit { queryClient?: QueryClient; route?: string; } function createTestQueryClient() { return new QueryClient({ defaultOptions: { queries: { retry: false, gcTime: 0 }, mutations: { retry: false }, }, }); } export function renderWithProviders( ui: ReactElement, { queryClient = createTestQueryClient(), route = '/', ...renderOptions }: CustomRenderOptions = {}, ) { function Wrapper({ children }: { children: React.ReactNode }) { return ( {children} ); } return { ...render(ui, { wrapper: Wrapper, ...renderOptions }), queryClient }; }