11import { Theme } from '@radix-ui/themes' ;
22import { QueryClient , QueryClientProvider } from '@tanstack/react-query' ;
3+ import {
4+ createRootRoute ,
5+ createRoute ,
6+ createRouter ,
7+ Outlet ,
8+ RouterProvider ,
9+ } from '@tanstack/react-router' ;
310import { render , RenderOptions } from '@testing-library/react' ;
4- import React , { ReactElement } from 'react' ;
11+ import { ReactElement } from 'react' ;
512import { Api } from '../../app/api/Api' ;
613import { ApiContext } from '../../app/api/context/ApiContext' ;
714import { AuthClient } from '../../app/api/infra/AuthClient' ;
@@ -22,11 +29,13 @@ const api = Api.create(
2229 socketClient ,
2330) ;
2431
25- const AllTheProviders = ( { children } : { children : React . ReactNode } ) => {
32+ const AllTheProviders = ( ) => {
2633 return (
2734 < QueryClientProvider client = { queryClient } >
2835 < ApiContext . Provider value = { api } >
29- < Theme > { children } </ Theme >
36+ < Theme >
37+ < Outlet />
38+ </ Theme >
3039 </ ApiContext . Provider >
3140 </ QueryClientProvider >
3241 ) ;
@@ -35,7 +44,29 @@ const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
3544const customRender = (
3645 ui : ReactElement ,
3746 options ?: Omit < RenderOptions , 'wrapper' > ,
38- ) => render ( ui , { wrapper : AllTheProviders , ...options } ) ;
47+ ) => {
48+ const rootRoute = createRootRoute ( {
49+ component : AllTheProviders ,
50+ } ) ;
51+
52+ const indexRoute = createRoute ( {
53+ getParentRoute : ( ) => rootRoute ,
54+ path : '/' ,
55+
56+ component : ( ) => {
57+ return ui ;
58+ } ,
59+ } ) ;
60+
61+ const routerTree = rootRoute . addChildren ( [ indexRoute ] ) ;
62+ const router = createRouter ( {
63+ routeTree : routerTree ,
64+ defaultPendingMinMs : 0 ,
65+ defaultPendingMs : 0 ,
66+ } ) ;
67+
68+ return render ( < RouterProvider router = { router } /> , { ...options } ) ;
69+ } ;
3970
4071export * from '@testing-library/react' ;
4172export { api , queryClient , customRender as render , socketClient } ;
0 commit comments