-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
jest.setup.ts
83 lines (78 loc) · 2.16 KB
/
jest.setup.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import * as ReactNative from 'react-native';
import { jest } from '@jest/globals';
jest.doMock('react-native', () => {
// @ts-ignore - react-native empty bridge config so native modules at least default init
global.__fbBatchedBridgeConfig = {};
// @ts-ignore - react-native new architecture interop flag to true
global.RN$TurboInterop = true;
// make sure PlatformConstants is visible otherwise turbo modules default init fails
ReactNative.NativeModules['PlatformConstants'] = {};
return Object.setPrototypeOf(
{
Platform: {
OS: 'android',
select: () => {},
},
NativeModules: {
...ReactNative.NativeModules,
RNFBAnalyticsModule: {
logEvent: jest.fn(),
},
RNFBAppModule: {
NATIVE_FIREBASE_APPS: [
{
appConfig: {
name: '[DEFAULT]',
},
options: {},
},
{
appConfig: {
name: 'secondaryFromNative',
},
options: {},
},
],
FIREBASE_RAW_JSON: '{}',
addListener: jest.fn(),
eventsAddListener: jest.fn(),
eventsNotifyReady: jest.fn(),
removeListeners: jest.fn(),
},
RNFBAuthModule: {
APP_LANGUAGE: {
'[DEFAULT]': 'en-US',
},
APP_USER: {
'[DEFAULT]': 'jestUser',
},
addAuthStateListener: jest.fn(),
addIdTokenListener: jest.fn(),
setTenantId: jest.fn(),
useEmulator: jest.fn(),
configureAuthDomain: jest.fn(),
},
RNFBCrashlyticsModule: {},
RNFBDatabaseModule: {
on: jest.fn(),
useEmulator: jest.fn(),
},
RNFBFirestoreModule: {
settings: jest.fn(),
documentSet: jest.fn(),
},
RNFBMessagingModule: {
onMessage: jest.fn(),
},
RNFBPerfModule: {},
RNFBConfigModule: {
onConfigUpdated: jest.fn(),
},
RNFBStorageModule: {
useEmulator: jest.fn(),
},
},
},
ReactNative,
);
});