diff options
Diffstat (limited to 'jest')
-rw-r--r-- | jest/jestSetup.js | 26 | ||||
-rw-r--r-- | jest/test-utils.tsx | 28 |
2 files changed, 33 insertions, 21 deletions
diff --git a/jest/jestSetup.js b/jest/jestSetup.js index 7a2f10d2d..1cad50c7a 100644 --- a/jest/jestSetup.js +++ b/jest/jestSetup.js @@ -1,17 +1,17 @@ +import 'react-native-gesture-handler/jestSetup' jest.mock('@react-native-async-storage/async-storage', () => require('@react-native-async-storage/async-storage/jest/async-storage-mock'), ) jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter') +// Silence the warning: Animated: `useNativeDriver` is not supported +jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper') +require('react-native-reanimated/lib/reanimated2/jestUtils').setUpTests() + jest.mock('@fortawesome/react-native-fontawesome', () => ({ FontAwesomeIcon: '', })) -require('react-native-reanimated/lib/reanimated2/jestUtils').setUpTests() - -// Silence the warning: Animated: `useNativeDriver` is not supported -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper') - jest.mock('react-native-safe-area-context', () => { const inset = {top: 0, right: 0, bottom: 0, left: 0} return { @@ -36,4 +36,18 @@ jest.mock('@gorhom/bottom-sheet', () => { } }) -jest.useFakeTimers() +jest.mock('rn-fetch-blob', () => ({ + config: jest.fn().mockReturnThis(), + cancel: jest.fn(), + fetch: jest.fn(), +})) + +jest.mock('@bam.tech/react-native-image-resizer', () => ({ + createResizedImage: jest.fn(), +})) + +import {View as mockedView} from 'react-native' +jest.mock('react-native-tab-view', () => ({ + ...jest.requireActual('react-native-tab-view'), + TabView: mockedView, +})) diff --git a/jest/test-utils.tsx b/jest/test-utils.tsx index a5946ed06..c84ee637e 100644 --- a/jest/test-utils.tsx +++ b/jest/test-utils.tsx @@ -1,29 +1,27 @@ 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' +import {RootStoreProvider} from '../src/state' +import {mockedRootStore} from '../__mocks__/state-mock' -const WrappedComponent = ({children}: any) => { - const api = AtpApi.service(DEFAULT_SERVICE) as SessionServiceClient - const rootStore = new RootStoreModel(api) - return ( +const customRender = (ui: any, storeMock?: any) => + render( + // eslint-disable-next-line react-native/no-inline-styles <GestureHandlerRootView style={{flex: 1}}> <RootSiblingParent> - <RootStoreProvider value={rootStore}> - <SafeAreaProvider>{children}</SafeAreaProvider> + <RootStoreProvider + value={ + storeMock != null + ? {...mockedRootStore, ...storeMock} + : mockedRootStore + }> + <SafeAreaProvider>{ui}</SafeAreaProvider> </RootStoreProvider> </RootSiblingParent> - </GestureHandlerRootView> + </GestureHandlerRootView>, ) -} - -const customRender = (ui: any, options?: any) => - render(ui, {wrapper: WrappedComponent, ...options}) // re-export everything export * from '@testing-library/react-native' |