Files
iNaturalistReactNative/tests/helpers/render.js
budowski 58de692298 364 sharing photos to inat (#568)
Allows user to share photos from gallery apps to our app as new observations via react-native-share-menu. Also added patch-package and patched react-native-share-menu for Android prod builds. Patch addresses https://github.com/meedan/react-native-share-menu/issues/216

Closes #364

---------

Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
2023-05-17 13:24:38 -07:00

48 lines
1.4 KiB
JavaScript

import { BottomSheetModalProvider } from "@gorhom/bottom-sheet";
import { NavigationContainer } from "@react-navigation/native";
import {
QueryClient,
QueryClientProvider
} from "@tanstack/react-query";
import { render } from "@testing-library/react-native";
import App from "components/App";
import INatPaperProvider from "providers/INatPaperProvider";
import ObsEditProvider from "providers/ObsEditProvider";
import React from "react";
const queryClient = new QueryClient( {
defaultOptions: {
queries: {
// No need to do default retries in tests
retry: false,
// Prevent `Jest did not exit one second after the test run has completed.` error
// https://react-query-v3.tanstack.com/guides/testing#set-cachetime-to-infinity-with-jest
cacheTime: Infinity
}
}
} );
function renderComponent( component, update = null ) {
const renderMethod = update || render;
return renderMethod(
<QueryClientProvider client={queryClient}>
<INatPaperProvider>
<BottomSheetModalProvider>
<NavigationContainer>
{ component }
</NavigationContainer>
</BottomSheetModalProvider>
</INatPaperProvider>
</QueryClientProvider>
);
}
function renderAppWithComponent( component, update = null ) {
return renderComponent( <ObsEditProvider><App>{ component }</App></ObsEditProvider>, update );
}
export {
renderAppWithComponent,
renderComponent
};