about summary refs log tree commit diff
path: root/jest/test-utils.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'jest/test-utils.tsx')
-rw-r--r--jest/test-utils.tsx32
1 files changed, 32 insertions, 0 deletions
diff --git a/jest/test-utils.tsx b/jest/test-utils.tsx
new file mode 100644
index 000000000..a5946ed06
--- /dev/null
+++ b/jest/test-utils.tsx
@@ -0,0 +1,32 @@
+import React from 'react'
+import RN from 'react-native'
+import {render} from '@testing-library/react-native'
+import {GestureHandlerRootView} from 'react-native-gesture-handler'
+import {RootSiblingParent} from 'react-native-root-siblings'
+import {SafeAreaProvider} from 'react-native-safe-area-context'
+import {DEFAULT_SERVICE, RootStoreModel, RootStoreProvider} from '../src/state'
+import {SessionServiceClient} from '../src/third-party/api/src'
+import {sessionClient as AtpApi} from '../src/third-party/api'
+
+const WrappedComponent = ({children}: any) => {
+  const api = AtpApi.service(DEFAULT_SERVICE) as SessionServiceClient
+  const rootStore = new RootStoreModel(api)
+  return (
+    <GestureHandlerRootView style={{flex: 1}}>
+      <RootSiblingParent>
+        <RootStoreProvider value={rootStore}>
+          <SafeAreaProvider>{children}</SafeAreaProvider>
+        </RootStoreProvider>
+      </RootSiblingParent>
+    </GestureHandlerRootView>
+  )
+}
+
+const customRender = (ui: any, options?: any) =>
+  render(ui, {wrapper: WrappedComponent, ...options})
+
+// re-export everything
+export * from '@testing-library/react-native'
+
+// override render method
+export {customRender as render}