-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
setup.js
107 lines (95 loc) · 2.67 KB
/
setup.js
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
* External dependencies
*/
import { NativeModules } from 'react-native';
jest.mock( 'react-native-gutenberg-bridge', () => {
return {
addEventListener: jest.fn(),
removeEventListener: jest.fn(),
subscribeParentGetHtml: jest.fn(),
subscribeParentToggleHTMLMode: jest.fn(),
subscribeSetTitle: jest.fn(),
subscribeSetFocusOnTitle: jest.fn(),
subscribeUpdateHtml: jest.fn(),
subscribeMediaAppend: jest.fn(),
subscribeAndroidModalClosed: jest.fn(),
subscribePreferredColorScheme: () => 'light',
editorDidMount: jest.fn(),
editorDidAutosave: jest.fn(),
subscribeMediaUpload: jest.fn(),
getOtherMediaOptions: jest.fn(),
requestMediaPicker: jest.fn(),
mediaSources: {
deviceLibrary: 'DEVICE_MEDIA_LIBRARY',
deviceCamera: 'DEVICE_CAMERA',
siteMediaLibrary: 'SITE_MEDIA_LIBRARY',
},
};
} );
jest.mock( 'react-native-dark-mode', () => {
return {
initialMode: 'light',
eventEmitter: {
on: jest.fn(),
},
useDarkModeContext: () => 'light',
};
} );
jest.mock( 'react-native-modal', () => () => 'Modal' );
jest.mock( 'react-native-hr', () => () => 'Hr' );
jest.mock( 'react-native-svg', () => {
return {
Svg: () => 'Svg',
Path: () => 'Path',
Circle: () => 'Circle',
G: () => 'G',
Polygon: () => 'Polygon',
Rect: () => 'Rect',
};
} );
jest.mock( 'react-native-safe-area', () => {
const addEventListener = jest.fn();
addEventListener.mockReturnValue( { remove: () => {} } );
return {
getSafeAreaInsetsForRootView: () => {
return new Promise( ( accept ) => {
accept( { safeAreaInsets: { bottom: 34 } } );
} );
},
addEventListener,
removeEventListener: jest.fn(),
};
} );
jest.mock( 'react-native-recyclerview-list' );
jest.mock( '@react-native-community/slider', () => () => 'Slider', {
virtual: true,
} );
if ( ! global.window.matchMedia ) {
global.window.matchMedia = () => ( {
matches: false,
addListener: () => {},
removeListener: () => {},
} );
}
jest.mock( 'react-native-linear-gradient', () => () => 'LinearGradient', {
virtual: true,
} );
// Overwrite some native module mocks from `react-native` jest preset:
// https://github.com/facebook/react-native/blob/master/jest/setup.js
// to fix issue "TypeError: Cannot read property 'Commands' of undefined"
// raised when calling focus or blur on a native component
const mockNativeModules = {
UIManager: {
...NativeModules.UIManager,
getViewManagerConfig: jest.fn( () => ( { Commands: {} } ) ),
},
};
Object.keys( mockNativeModules ).forEach( ( module ) => {
try {
jest.doMock( module, () => mockNativeModules[ module ] ); // needed by FacebookSDK-test
} catch ( error ) {
jest.doMock( module, () => mockNativeModules[ module ], {
virtual: true,
} );
}
} );