11import { NativeModules , AccessibilityInfo , Animated } from 'react-native' ;
2+ // ========= Mock Object.defineProperty to always allow overriding =========
3+ const originalDefineProperty = Object . defineProperty ;
4+ Object . defineProperty = ( obj , prop , desc ) => {
5+ try {
6+ return originalDefineProperty ( obj , prop , { ...desc , configurable : true } ) ;
7+ } catch ( e ) {
8+ return originalDefineProperty ( obj , prop , desc ) ;
9+ }
10+ } ;
11+ Object . defineProperties = ( obj , props ) => {
12+ Object . keys ( props ) . forEach ( key => {
13+ Object . defineProperty ( obj , key , props [ key ] ) ;
14+ } ) ;
15+ return obj ;
16+ } ;
17+ // =========================================================================
18+
219global . _UILIB_TESTING = true ;
320
421NativeModules . StatusBarManager = { getHeight : jest . fn ( ) } ;
@@ -21,6 +38,26 @@ jest.mock('react-native-gesture-handler',
2138 ( ) => {
2239 jest . requireActual ( 'react-native-gesture-handler/jestSetup' ) ;
2340 const GestureHandler = jest . requireActual ( 'react-native-gesture-handler' ) ;
41+ GestureHandler . Gesture . Tap = ( ) => {
42+ const TapMock = {
43+ _handlers : { }
44+ } ;
45+
46+ const getDefaultMockedHandler = handlerName => handler => {
47+ if ( typeof handler === 'function' ) {
48+ TapMock . _handlers [ handlerName ] = handler ;
49+ }
50+ return TapMock ;
51+ } ;
52+
53+ TapMock . type = 'tap' ;
54+ TapMock . maxDuration = getDefaultMockedHandler ( 'maxDuration' ) ;
55+ TapMock . onEnd = getDefaultMockedHandler ( 'onEnd' ) ;
56+ TapMock . onFinalize = getDefaultMockedHandler ( 'onFinalize' ) ;
57+ TapMock . onTouchesDown = getDefaultMockedHandler ( 'onTouchesDown' ) ;
58+ return TapMock ;
59+ } ;
60+
2461 GestureHandler . Gesture . Pan = ( ) => {
2562 const PanMock = {
2663 _handlers : { }
@@ -33,13 +70,22 @@ jest.mock('react-native-gesture-handler',
3370 return PanMock ;
3471 } ;
3572
73+ PanMock . type = 'pan' ;
3674 PanMock . onStart = getDefaultMockedHandler ( 'onStart' ) ;
3775 PanMock . onUpdate = getDefaultMockedHandler ( 'onUpdate' ) ;
3876 PanMock . onEnd = getDefaultMockedHandler ( 'onEnd' ) ;
39- PanMock . prepare = jest . fn ( ) ;
77+ PanMock . initialize = jest . fn ( ) ;
78+ PanMock . toGestureArray = jest . fn ( ( ) => {
79+ return [ PanMock ] ;
80+ } ) ;
4081 return PanMock ;
4182 } ;
4283
84+ try {
85+ Object . defineProperty ( GestureHandler , 'GestureDetector' , {
86+ value : require ( './GestureDetectorMock' ) . GestureDetectorMock
87+ } ) ;
88+ } catch { }
4389 return GestureHandler ;
4490 } ,
4591 { virtual : true } ) ;
0 commit comments