Archived
202 lines
6.2 KiB
JavaScript
202 lines
6.2 KiB
JavaScript
/* Workaround ref: https://github.com/facebook/react-native/issues/15810#issuecomment-329940107 */
|
|
const mockNativeModules = {
|
|
AlertManager: {
|
|
alertWithArgs: jest.fn(),
|
|
},
|
|
AppState: {
|
|
addEventListener: jest.fn(),
|
|
},
|
|
AsyncLocalStorage: {
|
|
multiGet: jest.fn((keys, callback) => process.nextTick(() => callback(null, []))),
|
|
multiSet: jest.fn((entries, callback) => process.nextTick(() => callback(null))),
|
|
multiRemove: jest.fn((keys, callback) => process.nextTick(() => callback(null))),
|
|
multiMerge: jest.fn((entries, callback) => process.nextTick(() => callback(null))),
|
|
clear: jest.fn(callback => process.nextTick(() => callback(null))),
|
|
getAllKeys: jest.fn(callback => process.nextTick(() => callback(null, []))),
|
|
},
|
|
BuildInfo: {
|
|
appVersion: '0',
|
|
buildVersion: '0',
|
|
},
|
|
Clipboard: {
|
|
setString: jest.fn(),
|
|
},
|
|
DataManager: {
|
|
queryData: jest.fn(),
|
|
},
|
|
DeviceInfo: {
|
|
Dimensions: {
|
|
window: {
|
|
fontScale: 2,
|
|
height: 1334,
|
|
scale: 2,
|
|
width: 750,
|
|
},
|
|
},
|
|
},
|
|
FacebookSDK: {
|
|
login: jest.fn(),
|
|
logout: jest.fn(),
|
|
queryGraphPath: jest.fn((path, method, params, callback) => callback()),
|
|
},
|
|
FbRelayNativeAdapter: {
|
|
updateCLC: jest.fn(),
|
|
},
|
|
GraphPhotoUpload: {
|
|
upload: jest.fn(),
|
|
},
|
|
I18n: {
|
|
translationsDictionary: JSON.stringify({
|
|
'Good bye, {name}!|Bye message': '\u{00A1}Adi\u{00F3}s {name}!',
|
|
}),
|
|
},
|
|
ImageLoader: {
|
|
getSize: jest.fn(
|
|
(url) => new Promise(() => ({width: 320, height: 240}))
|
|
),
|
|
prefetchImage: jest.fn(),
|
|
},
|
|
ImageViewManager: {
|
|
getSize: jest.fn(
|
|
(uri, success) => process.nextTick(() => success(320, 240))
|
|
),
|
|
prefetchImage: jest.fn(),
|
|
},
|
|
KeyboardObserver: {
|
|
addListener: jest.fn(),
|
|
removeListeners: jest.fn(),
|
|
},
|
|
Linking: {
|
|
openURL: jest.fn(),
|
|
canOpenURL: jest.fn(
|
|
() => new Promise((resolve) => resolve(true))
|
|
),
|
|
addEventListener: jest.fn(),
|
|
getInitialURL: jest.fn(
|
|
() => new Promise((resolve) => resolve())
|
|
),
|
|
removeEventListener: jest.fn(),
|
|
},
|
|
LocationObserver: {
|
|
getCurrentPosition: jest.fn(),
|
|
startObserving: jest.fn(),
|
|
stopObserving: jest.fn(),
|
|
},
|
|
ModalFullscreenViewManager: {},
|
|
NetInfo: {
|
|
fetch: jest.fn(
|
|
() => new Promise((resolve) => resolve())
|
|
),
|
|
addEventListener: jest.fn(),
|
|
isConnected: {
|
|
fetch: jest.fn(
|
|
() => new Promise((resolve) => resolve())
|
|
),
|
|
addEventListener: jest.fn(),
|
|
},
|
|
},
|
|
Networking: {
|
|
sendRequest: jest.fn(),
|
|
abortRequest: jest.fn(),
|
|
addListener: jest.fn(),
|
|
removeListeners: jest.fn(),
|
|
},
|
|
PushNotificationManager: {
|
|
presentLocalNotification: jest.fn(),
|
|
scheduleLocalNotification: jest.fn(),
|
|
cancelAllLocalNotifications: jest.fn(),
|
|
removeAllDeliveredNotifications: jest.fn(),
|
|
getDeliveredNotifications: jest.fn(callback => process.nextTick(() => [])),
|
|
removeDeliveredNotifications: jest.fn(),
|
|
setApplicationIconBadgeNumber: jest.fn(),
|
|
getApplicationIconBadgeNumber: jest.fn(callback => process.nextTick(() => callback(0))),
|
|
cancelLocalNotifications: jest.fn(),
|
|
getScheduledLocalNotifications: jest.fn(callback => process.nextTick(() => callback())),
|
|
requestPermissions: jest.fn(() => Promise.resolve({alert: true, badge: true, sound: true})),
|
|
abandonPermissions: jest.fn(),
|
|
checkPermissions: jest.fn(callback => process.nextTick(() => callback({alert: true, badge: true, sound: true}))),
|
|
getInitialNotification: jest.fn(() => Promise.resolve(null)),
|
|
addListener: jest.fn(),
|
|
removeListeners: jest.fn(),
|
|
},
|
|
SourceCode: {
|
|
scriptURL: null,
|
|
},
|
|
StatusBarManager: {
|
|
setColor: jest.fn(),
|
|
setStyle: jest.fn(),
|
|
setHidden: jest.fn(),
|
|
setNetworkActivityIndicatorVisible: jest.fn(),
|
|
setBackgroundColor: jest.fn(),
|
|
setTranslucent: jest.fn(),
|
|
},
|
|
Timing: {
|
|
createTimer: jest.fn(),
|
|
deleteTimer: jest.fn(),
|
|
},
|
|
UIManager: {
|
|
AndroidViewPager: {
|
|
Commands: {
|
|
setPage: jest.fn(),
|
|
setPageWithoutAnimation: jest.fn(),
|
|
},
|
|
},
|
|
blur: jest.fn(),
|
|
createView: jest.fn(),
|
|
dispatchViewManagerCommand: jest.fn(),
|
|
focus: jest.fn(),
|
|
setChildren: jest.fn(),
|
|
manageChildren: jest.fn(),
|
|
updateView: jest.fn(),
|
|
removeSubviewsFromContainerWithID: jest.fn(),
|
|
replaceExistingNonRootView: jest.fn(),
|
|
customBubblingEventTypes: {},
|
|
customDirectEventTypes: {},
|
|
AndroidTextInput: {
|
|
Commands: {},
|
|
},
|
|
ModalFullscreenView: {
|
|
Constants: {},
|
|
},
|
|
ScrollView: {
|
|
Constants: {},
|
|
},
|
|
View: {
|
|
Constants: {},
|
|
},
|
|
},
|
|
BlobModule: {
|
|
BLOB_URI_SCHEME: 'content',
|
|
BLOB_URI_HOST: null,
|
|
enableBlobSupport: jest.fn(),
|
|
disableBlobSupport: jest.fn(),
|
|
createFromParts: jest.fn(),
|
|
sendBlob: jest.fn(),
|
|
release: jest.fn(),
|
|
},
|
|
WebSocketModule: {
|
|
connect: jest.fn(),
|
|
send: jest.fn(),
|
|
sendBinary: jest.fn(),
|
|
ping: jest.fn(),
|
|
close: jest.fn(),
|
|
addListener: jest.fn(),
|
|
removeListeners: jest.fn(),
|
|
},
|
|
};
|
|
|
|
Object.keys(mockNativeModules).forEach(module => {
|
|
try {
|
|
jest.doMock(module, () => mockNativeModules[module]); // needed by FacebookSDK-test
|
|
} catch (e) {
|
|
jest.doMock(module, () => mockNativeModules[module], {virtual: true});
|
|
}
|
|
});
|
|
|
|
jest.mock('Linking', () => ({
|
|
addEventListener: jest.fn(),
|
|
removeEventListener: jest.fn(),
|
|
openURL: jest.genMockFn().mockReturnValue(Promise.resolve()),
|
|
canOpenURL: jest.genMockFn().mockReturnValue(Promise.resolve()),
|
|
getInitialURL: jest.genMockFn().mockReturnValue(Promise.resolve()),
|
|
})); |