import { render } from '@testing-library/react-native'; import React from 'react'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import { Provider as PaperProvider } from 'react-native-paper'; import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'; import { ThemeProvider } from '@hooks/persisted/useTheme'; import AppErrorBoundary from '@components/AppErrorBoundary/AppErrorBoundary'; import { NovelContextProvider } from '@screens/novel/NovelContext'; import { NovelScreenProps, ChapterScreenProps } from '@navigators/types'; const AllTheProviders = ({ children }: { children: React.ReactElement }) => { return ( {children} ); }; const customRender = (ui: React.ReactElement, options?: object) => render(ui, { wrapper: AllTheProviders, ...options }); const renderNovel = ( ui: React.ReactElement, options?: { route?: NovelScreenProps['route'] | ChapterScreenProps['route']; }, ) => { const { route } = options || {}; return render( {ui} , { wrapper: AllTheProviders, ...options }, ); }; export * from '@testing-library/react-native'; export { customRender as render, renderNovel, AllTheProviders };