import React, { PropsWithChildren } from 'react'; import { render, type RenderOptions } from '@testing-library/react-native'; import { NavigationContainer } from '@react-navigation/native'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import { ThemeProvider } from '@/theme/ThemeContext'; type TestProvidersProps = PropsWithChildren; const TestProviders = ({ children }: TestProvidersProps) => ( {children} ); const TestProvidersWithNavigation = ({ children }: TestProvidersProps) => ( {children} ); interface RenderWithProvidersOptions extends Omit { withNavigation?: boolean; } export const renderWithProviders = ( ui: React.ReactElement, { withNavigation, ...options }: RenderWithProvidersOptions = {}, ) => { return render(ui, { ...options, wrapper: withNavigation ? TestProvidersWithNavigation : TestProviders, }); };