yeet
This commit is contained in:
21
node_modules/react-native/jest/MockNativeMethods.js
generated
vendored
Normal file
21
node_modules/react-native/jest/MockNativeMethods.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const MockNativeMethods = {
|
||||
measure: jest.fn(),
|
||||
measureInWindow: jest.fn(),
|
||||
measureLayout: jest.fn(),
|
||||
setNativeProps: jest.fn(),
|
||||
focus: jest.fn(),
|
||||
blur: jest.fn(),
|
||||
};
|
||||
|
||||
module.exports = MockNativeMethods;
|
30
node_modules/react-native/jest/assetFileTransformer.js
generated
vendored
Normal file
30
node_modules/react-native/jest/assetFileTransformer.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/* eslint-env node */
|
||||
|
||||
const path = require('path');
|
||||
const createCacheKeyFunction = require('fbjs-scripts/jest/createCacheKeyFunction');
|
||||
|
||||
module.exports = {
|
||||
// Mocks asset requires to return the filename. Makes it possible to test that
|
||||
// the correct images are loaded for components. Essentially
|
||||
// require('img1.png') becomes `Object { "testUri": 'path/to/img1.png' }` in
|
||||
// the Jest snapshot.
|
||||
process: (_, filename) =>
|
||||
`module.exports = {
|
||||
testUri:
|
||||
${JSON.stringify(
|
||||
path.relative(__dirname, filename).replace(/\\/g, '/'),
|
||||
)}
|
||||
};`,
|
||||
getCacheKey: createCacheKeyFunction([__filename]),
|
||||
};
|
62
node_modules/react-native/jest/mockComponent.js
generated
vendored
Normal file
62
node_modules/react-native/jest/mockComponent.js
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = (moduleName, instanceMethods) => {
|
||||
const RealComponent = jest.requireActual(moduleName);
|
||||
const React = require('react');
|
||||
|
||||
const SuperClass =
|
||||
typeof RealComponent === 'function' ? RealComponent : React.Component;
|
||||
|
||||
const Component = class extends SuperClass {
|
||||
static displayName = 'Component';
|
||||
|
||||
render() {
|
||||
const name =
|
||||
RealComponent.displayName ||
|
||||
RealComponent.name ||
|
||||
(RealComponent.render // handle React.forwardRef
|
||||
? RealComponent.render.displayName || RealComponent.render.name
|
||||
: 'Unknown');
|
||||
|
||||
const props = Object.assign({}, RealComponent.defaultProps);
|
||||
|
||||
if (this.props) {
|
||||
Object.keys(this.props).forEach(prop => {
|
||||
// We can't just assign props on top of defaultProps
|
||||
// because React treats undefined as special and different from null.
|
||||
// If a prop is specified but set to undefined it is ignored and the
|
||||
// default prop is used instead. If it is set to null, then the
|
||||
// null value overwrites the default value.
|
||||
if (this.props[prop] !== undefined) {
|
||||
props[prop] = this.props[prop];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return React.createElement(
|
||||
name.replace(/^(RCT|RK)/, ''),
|
||||
props,
|
||||
this.props.children,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Object.keys(RealComponent).forEach(classStatic => {
|
||||
Component[classStatic] = RealComponent[classStatic];
|
||||
});
|
||||
|
||||
if (instanceMethods != null) {
|
||||
Object.assign(Component.prototype, instanceMethods);
|
||||
}
|
||||
|
||||
return Component;
|
||||
};
|
35
node_modules/react-native/jest/mockScrollView.js
generated
vendored
Normal file
35
node_modules/react-native/jest/mockScrollView.js
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @flow strict-local
|
||||
*/
|
||||
|
||||
/* eslint-env jest */
|
||||
|
||||
'use strict';
|
||||
|
||||
const React = require('react');
|
||||
const View = require('../Libraries/Components/View/View');
|
||||
|
||||
const requireNativeComponent = require('../Libraries/ReactNative/requireNativeComponent');
|
||||
const RCTScrollView: $FlowFixMe = requireNativeComponent('RCTScrollView');
|
||||
|
||||
function mockScrollView(BaseComponent: $FlowFixMe) {
|
||||
class ScrollViewMock extends BaseComponent {
|
||||
render(): React.Element<typeof RCTScrollView> {
|
||||
return (
|
||||
<RCTScrollView {...this.props}>
|
||||
{this.props.refreshControl}
|
||||
<View>{this.props.children}</View>
|
||||
</RCTScrollView>
|
||||
);
|
||||
}
|
||||
}
|
||||
return ScrollViewMock;
|
||||
}
|
||||
|
||||
module.exports = (mockScrollView: $FlowFixMe);
|
120
node_modules/react-native/jest/preprocessor.js
generated
vendored
Normal file
120
node_modules/react-native/jest/preprocessor.js
generated
vendored
Normal file
@ -0,0 +1,120 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @flow
|
||||
*/
|
||||
|
||||
/* eslint-env node */
|
||||
|
||||
'use strict';
|
||||
|
||||
const babelRegisterOnly = require('metro-babel-register');
|
||||
const createCacheKeyFunction = require('fbjs-scripts/jest/createCacheKeyFunction');
|
||||
|
||||
const {transformSync: babelTransformSync} = require('@babel/core');
|
||||
const generate = require('@babel/generator').default;
|
||||
|
||||
const nodeFiles = new RegExp(
|
||||
[
|
||||
'/metro(?:-[^/]*)?/', // metro, metro-core, metro-source-map, metro-etc.
|
||||
].join('|'),
|
||||
);
|
||||
const nodeOptions = babelRegisterOnly.config([nodeFiles]);
|
||||
|
||||
babelRegisterOnly([]);
|
||||
|
||||
const transformer = require('metro-react-native-babel-transformer');
|
||||
module.exports = {
|
||||
process(src /*: string */, file /*: string */) /*: string */ {
|
||||
if (nodeFiles.test(file)) {
|
||||
// node specific transforms only
|
||||
return babelTransformSync(src, {
|
||||
filename: file,
|
||||
sourceType: 'script',
|
||||
...nodeOptions,
|
||||
ast: false,
|
||||
}).code;
|
||||
}
|
||||
|
||||
const {ast} = transformer.transform({
|
||||
filename: file,
|
||||
options: {
|
||||
ast: true, // needed for open source (?) https://github.com/facebook/react-native/commit/f8d6b97140cffe8d18b2558f94570c8d1b410d5c#r28647044
|
||||
dev: true,
|
||||
enableBabelRuntime: false,
|
||||
experimentalImportSupport: false,
|
||||
hot: false,
|
||||
inlineRequires: true,
|
||||
minify: false,
|
||||
platform: '',
|
||||
projectRoot: '',
|
||||
publicPath: '/assets',
|
||||
retainLines: true,
|
||||
sourceType: 'unambiguous', // b7 required. detects module vs script mode
|
||||
},
|
||||
src,
|
||||
plugins: [
|
||||
[require('@babel/plugin-transform-block-scoping')],
|
||||
// the flow strip types plugin must go BEFORE class properties!
|
||||
// there'll be a test case that fails if you don't.
|
||||
[require('@babel/plugin-transform-flow-strip-types')],
|
||||
[
|
||||
require('@babel/plugin-proposal-class-properties'),
|
||||
// use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
|
||||
{loose: true},
|
||||
],
|
||||
[require('@babel/plugin-transform-computed-properties')],
|
||||
[require('@babel/plugin-transform-destructuring')],
|
||||
[require('@babel/plugin-transform-function-name')],
|
||||
[require('@babel/plugin-transform-literals')],
|
||||
[require('@babel/plugin-transform-parameters')],
|
||||
[require('@babel/plugin-transform-shorthand-properties')],
|
||||
[require('@babel/plugin-transform-react-jsx')],
|
||||
[require('@babel/plugin-transform-regenerator')],
|
||||
[require('@babel/plugin-transform-sticky-regex')],
|
||||
[require('@babel/plugin-transform-unicode-regex')],
|
||||
[
|
||||
require('@babel/plugin-transform-modules-commonjs'),
|
||||
{strict: false, allowTopLevelThis: true},
|
||||
],
|
||||
[require('@babel/plugin-transform-classes')],
|
||||
[require('@babel/plugin-transform-arrow-functions')],
|
||||
[require('@babel/plugin-transform-spread')],
|
||||
[require('@babel/plugin-proposal-object-rest-spread')],
|
||||
[
|
||||
require('@babel/plugin-transform-template-literals'),
|
||||
{loose: true}, // dont 'a'.concat('b'), just use 'a'+'b'
|
||||
],
|
||||
[require('@babel/plugin-transform-exponentiation-operator')],
|
||||
[require('@babel/plugin-transform-object-assign')],
|
||||
[require('@babel/plugin-transform-for-of'), {loose: true}],
|
||||
[require('@babel/plugin-transform-react-display-name')],
|
||||
[require('@babel/plugin-transform-react-jsx-source')],
|
||||
],
|
||||
});
|
||||
|
||||
return generate(
|
||||
ast,
|
||||
{
|
||||
code: true,
|
||||
comments: false,
|
||||
compact: false,
|
||||
filename: file,
|
||||
retainLines: true,
|
||||
sourceFileName: file,
|
||||
sourceMaps: true,
|
||||
},
|
||||
src,
|
||||
).code;
|
||||
},
|
||||
|
||||
getCacheKey: (createCacheKeyFunction([
|
||||
__filename,
|
||||
require.resolve('metro-react-native-babel-transformer'),
|
||||
require.resolve('@babel/core/package.json'),
|
||||
]) /*: any */),
|
||||
};
|
35
node_modules/react-native/jest/renderer.js
generated
vendored
Normal file
35
node_modules/react-native/jest/renderer.js
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @emails oncall+react_native
|
||||
* @flow
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const React = require('react');
|
||||
const ShallowRenderer = require('react-test-renderer/shallow');
|
||||
const TestRenderer = require('react-test-renderer');
|
||||
|
||||
/* $FlowFixMe(>=0.122.0 site=react_native_fb) This comment suppresses an error
|
||||
* found when Flow v0.122.0 was deployed. To see the error, delete this comment
|
||||
* and run Flow. */
|
||||
const renderer = new ShallowRenderer();
|
||||
|
||||
export const shallow = (Component: React.Element<any>): any => {
|
||||
const Wrapper = (): React.Element<any> => Component;
|
||||
|
||||
return renderer.render(<Wrapper />);
|
||||
};
|
||||
|
||||
export const shallowRender = (Component: React.Element<any>): any => {
|
||||
return renderer.render(Component);
|
||||
};
|
||||
|
||||
export const create = (Component: React.Element<any>): any => {
|
||||
return TestRenderer.create(Component);
|
||||
};
|
365
node_modules/react-native/jest/setup.js
generated
vendored
Normal file
365
node_modules/react-native/jest/setup.js
generated
vendored
Normal file
@ -0,0 +1,365 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const MockNativeMethods = jest.requireActual('./MockNativeMethods');
|
||||
const mockComponent = jest.requireActual('./mockComponent');
|
||||
|
||||
jest.requireActual('../Libraries/polyfills/Object.es7.js');
|
||||
jest.requireActual('../Libraries/polyfills/error-guard');
|
||||
|
||||
global.__DEV__ = true;
|
||||
|
||||
global.Promise = jest.requireActual('promise');
|
||||
global.regeneratorRuntime = jest.requireActual('regenerator-runtime/runtime');
|
||||
|
||||
global.requestAnimationFrame = function(callback) {
|
||||
return setTimeout(callback, 0);
|
||||
};
|
||||
global.cancelAnimationFrame = function(id) {
|
||||
clearTimeout(id);
|
||||
};
|
||||
|
||||
// there's a __mock__ for it.
|
||||
jest.setMock(
|
||||
'../Libraries/vendor/core/ErrorUtils',
|
||||
require('../Libraries/vendor/core/ErrorUtils'),
|
||||
);
|
||||
|
||||
jest
|
||||
.mock('../Libraries/Core/InitializeCore', () => {})
|
||||
.mock('../Libraries/Core/NativeExceptionsManager', () => ({
|
||||
__esModule: true,
|
||||
default: {
|
||||
reportException: jest.fn(),
|
||||
},
|
||||
}))
|
||||
.mock('../Libraries/ReactNative/UIManager', () => ({
|
||||
AndroidViewPager: {
|
||||
Commands: {
|
||||
setPage: jest.fn(),
|
||||
setPageWithoutAnimation: jest.fn(),
|
||||
},
|
||||
},
|
||||
blur: jest.fn(),
|
||||
createView: jest.fn(),
|
||||
customBubblingEventTypes: {},
|
||||
customDirectEventTypes: {},
|
||||
dispatchViewManagerCommand: jest.fn(),
|
||||
focus: jest.fn(),
|
||||
getViewManagerConfig: jest.fn(name => {
|
||||
if (name === 'AndroidDrawerLayout') {
|
||||
return {
|
||||
Constants: {
|
||||
DrawerPosition: {
|
||||
Left: 10,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
}),
|
||||
measure: jest.fn(),
|
||||
manageChildren: jest.fn(),
|
||||
removeSubviewsFromContainerWithID: jest.fn(),
|
||||
replaceExistingNonRootView: jest.fn(),
|
||||
setChildren: jest.fn(),
|
||||
updateView: jest.fn(),
|
||||
AndroidDrawerLayout: {
|
||||
Constants: {
|
||||
DrawerPosition: {
|
||||
Left: 10,
|
||||
},
|
||||
},
|
||||
},
|
||||
AndroidTextInput: {
|
||||
Commands: {},
|
||||
},
|
||||
ScrollView: {
|
||||
Constants: {},
|
||||
},
|
||||
View: {
|
||||
Constants: {},
|
||||
},
|
||||
}))
|
||||
.mock('../Libraries/Image/Image', () =>
|
||||
mockComponent('../Libraries/Image/Image'),
|
||||
)
|
||||
.mock('../Libraries/Text/Text', () =>
|
||||
mockComponent('../Libraries/Text/Text', MockNativeMethods),
|
||||
)
|
||||
.mock('../Libraries/Components/TextInput/TextInput', () =>
|
||||
mockComponent('../Libraries/Components/TextInput/TextInput', {
|
||||
...MockNativeMethods,
|
||||
isFocused: jest.fn(),
|
||||
clear: jest.fn(),
|
||||
getNativeRef: jest.fn(),
|
||||
}),
|
||||
)
|
||||
.mock('../Libraries/Modal/Modal', () =>
|
||||
mockComponent('../Libraries/Modal/Modal'),
|
||||
)
|
||||
.mock('../Libraries/Components/View/View', () =>
|
||||
mockComponent('../Libraries/Components/View/View', MockNativeMethods),
|
||||
)
|
||||
.mock('../Libraries/Components/AccessibilityInfo/AccessibilityInfo', () => ({
|
||||
addEventListener: jest.fn(),
|
||||
announceForAccessibility: jest.fn(),
|
||||
fetch: jest.fn(),
|
||||
isBoldTextEnabled: jest.fn(),
|
||||
isGrayscaleEnabled: jest.fn(),
|
||||
isInvertColorsEnabled: jest.fn(),
|
||||
isReduceMotionEnabled: jest.fn(),
|
||||
isReduceTransparencyEnabled: jest.fn(),
|
||||
isScreenReaderEnabled: jest.fn(() => Promise.resolve(false)),
|
||||
removeEventListener: jest.fn(),
|
||||
setAccessibilityFocus: jest.fn(),
|
||||
}))
|
||||
.mock('../Libraries/Components/RefreshControl/RefreshControl', () =>
|
||||
jest.requireActual(
|
||||
'../Libraries/Components/RefreshControl/__mocks__/RefreshControlMock',
|
||||
),
|
||||
)
|
||||
.mock('../Libraries/Components/ScrollView/ScrollView', () => {
|
||||
const baseComponent = mockComponent(
|
||||
'../Libraries/Components/ScrollView/ScrollView',
|
||||
{
|
||||
...MockNativeMethods,
|
||||
getScrollResponder: jest.fn(),
|
||||
getScrollableNode: jest.fn(),
|
||||
getInnerViewNode: jest.fn(),
|
||||
getInnerViewRef: jest.fn(),
|
||||
getNativeScrollRef: jest.fn(),
|
||||
scrollTo: jest.fn(),
|
||||
scrollToEnd: jest.fn(),
|
||||
flashScrollIndicators: jest.fn(),
|
||||
scrollResponderZoomTo: jest.fn(),
|
||||
scrollResponderScrollNativeHandleToKeyboard: jest.fn(),
|
||||
},
|
||||
);
|
||||
const mockScrollView = jest.requireActual('./mockScrollView');
|
||||
return mockScrollView(baseComponent);
|
||||
})
|
||||
.mock('../Libraries/Components/ActivityIndicator/ActivityIndicator', () =>
|
||||
mockComponent(
|
||||
'../Libraries/Components/ActivityIndicator/ActivityIndicator',
|
||||
),
|
||||
)
|
||||
.mock('../Libraries/AppState/AppState', () => ({
|
||||
addEventListener: jest.fn(),
|
||||
removeEventListener: jest.fn(),
|
||||
}))
|
||||
.mock('../Libraries/Linking/Linking', () => ({
|
||||
openURL: jest.fn(),
|
||||
canOpenURL: jest.fn(() => Promise.resolve(true)),
|
||||
openSettings: jest.fn(),
|
||||
addEventListener: jest.fn(),
|
||||
getInitialURL: jest.fn(() => Promise.resolve()),
|
||||
removeEventListener: jest.fn(),
|
||||
sendIntent: jest.fn(),
|
||||
}))
|
||||
// Mock modules defined by the native layer (ex: Objective-C, Java)
|
||||
.mock('../Libraries/BatchedBridge/NativeModules', () => ({
|
||||
AlertManager: {
|
||||
alertWithArgs: 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, [])),
|
||||
),
|
||||
},
|
||||
Clipboard: {
|
||||
getString: jest.fn(() => ''),
|
||||
setString: jest.fn(),
|
||||
},
|
||||
DeviceInfo: {
|
||||
getConstants() {
|
||||
return {
|
||||
Dimensions: {
|
||||
window: {
|
||||
fontScale: 2,
|
||||
height: 1334,
|
||||
scale: 2,
|
||||
width: 750,
|
||||
},
|
||||
screen: {
|
||||
fontScale: 2,
|
||||
height: 1334,
|
||||
scale: 2,
|
||||
width: 750,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
ImageLoader: {
|
||||
getSize: jest.fn(url => Promise.resolve({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(),
|
||||
},
|
||||
Networking: {
|
||||
sendRequest: jest.fn(),
|
||||
abortRequest: jest.fn(),
|
||||
addListener: jest.fn(),
|
||||
removeListeners: jest.fn(),
|
||||
},
|
||||
PlatformConstants: {
|
||||
getConstants() {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
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: {
|
||||
getConstants() {
|
||||
return {
|
||||
scriptURL: null,
|
||||
};
|
||||
},
|
||||
},
|
||||
StatusBarManager: {
|
||||
setColor: jest.fn(),
|
||||
setStyle: jest.fn(),
|
||||
setHidden: jest.fn(),
|
||||
setNetworkActivityIndicatorVisible: jest.fn(),
|
||||
setBackgroundColor: jest.fn(),
|
||||
setTranslucent: jest.fn(),
|
||||
getConstants: () => ({
|
||||
HEIGHT: 42,
|
||||
}),
|
||||
},
|
||||
Timing: {
|
||||
createTimer: jest.fn(),
|
||||
deleteTimer: jest.fn(),
|
||||
},
|
||||
UIManager: {},
|
||||
BlobModule: {
|
||||
getConstants: () => ({BLOB_URI_SCHEME: 'content', BLOB_URI_HOST: null}),
|
||||
addNetworkingHandler: jest.fn(),
|
||||
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(),
|
||||
},
|
||||
I18nManager: {
|
||||
allowRTL: jest.fn(),
|
||||
forceRTL: jest.fn(),
|
||||
swapLeftAndRightInRTL: jest.fn(),
|
||||
getConstants: () => ({
|
||||
isRTL: false,
|
||||
doLeftAndRightSwapInRTL: true,
|
||||
}),
|
||||
},
|
||||
}))
|
||||
.mock('../Libraries/ReactNative/requireNativeComponent', () => {
|
||||
const React = require('react');
|
||||
|
||||
return viewName => {
|
||||
const Component = class extends React.Component {
|
||||
render() {
|
||||
return React.createElement(viewName, this.props, this.props.children);
|
||||
}
|
||||
|
||||
// The methods that exist on host components
|
||||
blur = jest.fn();
|
||||
focus = jest.fn();
|
||||
measure = jest.fn();
|
||||
measureInWindow = jest.fn();
|
||||
measureLayout = jest.fn();
|
||||
setNativeProps = jest.fn();
|
||||
};
|
||||
|
||||
if (viewName === 'RCTView') {
|
||||
Component.displayName = 'View';
|
||||
} else {
|
||||
Component.displayName = viewName;
|
||||
}
|
||||
|
||||
return Component;
|
||||
};
|
||||
})
|
||||
.mock(
|
||||
'../Libraries/Utilities/verifyComponentAttributeEquivalence',
|
||||
() => function() {},
|
||||
)
|
||||
.mock('../Libraries/Components/View/ViewNativeComponent', () => {
|
||||
const React = require('react');
|
||||
const Component = class extends React.Component {
|
||||
render() {
|
||||
return React.createElement('View', this.props, this.props.children);
|
||||
}
|
||||
};
|
||||
|
||||
Component.displayName = 'View';
|
||||
|
||||
return {
|
||||
__esModule: true,
|
||||
default: Component,
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user