Skip to content

Instantly share code, notes, and snippets.

@claudiainbytes
Created February 11, 2026 19:06
Show Gist options
  • Select an option

  • Save claudiainbytes/69182d16fff1dea8e4c1686b94ae234c to your computer and use it in GitHub Desktop.

Select an option

Save claudiainbytes/69182d16fff1dea8e4c1686b94ae234c to your computer and use it in GitHub Desktop.
Testing Custom Render con Múltiples Providers
// test-utils/custom-render.tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { AuthProvider } from '@/contexts/AuthContext'
import { ThemeProvider } from '@/contexts/ThemeContext'
interface RenderOptions {
initialUser?: User
theme?: 'light' | 'dark'
queryClient?: QueryClient
}
export const renderWithProviders = (
ui: React.ReactElement,
{
initialUser = null,
theme = 'light',
queryClient = createTestQueryClient(),
...renderOptions
}: RenderOptions = {}
) => {
const Wrapper = ({ children }) => (
<QueryClientProvider client={queryClient}>
<AuthProvider initialUser={initialUser}>
<ThemeProvider initialTheme={theme}>
{children}
</ThemeProvider>
</AuthProvider>
</QueryClientProvider>
)
return render(ui, { wrapper: Wrapper, ...renderOptions })
}
// Uso
it('muestra contenido para usuario autenticado', () => {
renderWithProviders(<Dashboard />, {
initialUser: { id: 1, name: 'John' },
theme: 'dark'
})
expect(screen.getByText(/welcome, john/i)).toBeInTheDocument()
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment