@@ -249,6 +249,88 @@ describe('ReactNative', () => {
249
249
} ) ;
250
250
} ) ;
251
251
252
+ it ( 'should call UIManager.measure on ref.measure' , ( ) => {
253
+ const View = createReactNativeComponentClass ( 'RCTView' , ( ) => ( {
254
+ validAttributes : { foo : true } ,
255
+ uiViewClassName : 'RCTView' ,
256
+ } ) ) ;
257
+
258
+ class Subclass extends ReactNative . NativeComponent {
259
+ render ( ) {
260
+ return < View > { this . props . children } </ View > ;
261
+ }
262
+ }
263
+
264
+ const CreateClass = createReactClass ( {
265
+ mixins : [ NativeMethodsMixin ] ,
266
+ render ( ) {
267
+ return < View > { this . props . children } </ View > ;
268
+ } ,
269
+ } ) ;
270
+
271
+ [ View , Subclass , CreateClass ] . forEach ( Component => {
272
+ UIManager . measure . mockClear ( ) ;
273
+
274
+ let viewRef ;
275
+ ReactNative . render (
276
+ < Component
277
+ ref = { ref => {
278
+ viewRef = ref ;
279
+ } }
280
+ /> ,
281
+ 11 ,
282
+ ) ;
283
+
284
+ expect ( UIManager . measure ) . not . toBeCalled ( ) ;
285
+ const successCallback = jest . fn ( ) ;
286
+ viewRef . measure ( successCallback ) ;
287
+ expect ( UIManager . measure ) . toHaveBeenCalledTimes ( 1 ) ;
288
+ expect ( successCallback ) . toHaveBeenCalledTimes ( 1 ) ;
289
+ expect ( successCallback ) . toHaveBeenCalledWith ( 10 , 10 , 100 , 100 , 0 , 0 ) ;
290
+ } ) ;
291
+ } ) ;
292
+
293
+ it ( 'should call UIManager.measureInWindow on ref.measureInWindow' , ( ) => {
294
+ const View = createReactNativeComponentClass ( 'RCTView' , ( ) => ( {
295
+ validAttributes : { foo : true } ,
296
+ uiViewClassName : 'RCTView' ,
297
+ } ) ) ;
298
+
299
+ class Subclass extends ReactNative . NativeComponent {
300
+ render ( ) {
301
+ return < View > { this . props . children } </ View > ;
302
+ }
303
+ }
304
+
305
+ const CreateClass = createReactClass ( {
306
+ mixins : [ NativeMethodsMixin ] ,
307
+ render ( ) {
308
+ return < View > { this . props . children } </ View > ;
309
+ } ,
310
+ } ) ;
311
+
312
+ [ View , Subclass , CreateClass ] . forEach ( Component => {
313
+ UIManager . measureInWindow . mockClear ( ) ;
314
+
315
+ let viewRef ;
316
+ ReactNative . render (
317
+ < Component
318
+ ref = { ref => {
319
+ viewRef = ref ;
320
+ } }
321
+ /> ,
322
+ 11 ,
323
+ ) ;
324
+
325
+ expect ( UIManager . measureInWindow ) . not . toBeCalled ( ) ;
326
+ const successCallback = jest . fn ( ) ;
327
+ viewRef . measureInWindow ( successCallback ) ;
328
+ expect ( UIManager . measureInWindow ) . toHaveBeenCalledTimes ( 1 ) ;
329
+ expect ( successCallback ) . toHaveBeenCalledTimes ( 1 ) ;
330
+ expect ( successCallback ) . toHaveBeenCalledWith ( 10 , 10 , 100 , 100 ) ;
331
+ } ) ;
332
+ } ) ;
333
+
252
334
it ( 'should support reactTag in ref.measureLayout' , ( ) => {
253
335
const View = createReactNativeComponentClass ( 'RCTView' , ( ) => ( {
254
336
validAttributes : { foo : true } ,
@@ -269,7 +351,7 @@ describe('ReactNative', () => {
269
351
} ) ;
270
352
271
353
[ View , Subclass , CreateClass ] . forEach ( Component => {
272
- UIManager . measureLayout . mockReset ( ) ;
354
+ UIManager . measureLayout . mockClear ( ) ;
273
355
274
356
let viewRef ;
275
357
let otherRef ;
@@ -291,33 +373,16 @@ describe('ReactNative', () => {
291
373
) ;
292
374
293
375
expect ( UIManager . measureLayout ) . not . toBeCalled ( ) ;
294
-
295
376
const successCallback = jest . fn ( ) ;
296
377
const failureCallback = jest . fn ( ) ;
297
378
viewRef . measureLayout (
298
379
ReactNative . findNodeHandle ( otherRef ) ,
299
380
successCallback ,
300
381
failureCallback ,
301
382
) ;
302
-
303
383
expect ( UIManager . measureLayout ) . toHaveBeenCalledTimes ( 1 ) ;
304
- expect ( UIManager . measureLayout ) . toHaveBeenCalledWith (
305
- expect . any ( Number ) ,
306
- expect . any ( Number ) ,
307
- expect . any ( Function ) ,
308
- expect . any ( Function ) ,
309
- ) ;
310
-
311
- const args = UIManager . measureLayout . mock . calls [ 0 ] ;
312
- expect ( args [ 0 ] ) . not . toEqual ( args [ 1 ] ) ;
313
- expect ( successCallback ) . not . toBeCalled ( ) ;
314
- expect ( failureCallback ) . not . toBeCalled ( ) ;
315
- args [ 2 ] ( 'fail' ) ;
316
- expect ( failureCallback ) . toBeCalledWith ( 'fail' ) ;
317
-
318
- expect ( successCallback ) . not . toBeCalled ( ) ;
319
- args [ 3 ] ( 'success' ) ;
320
- expect ( successCallback ) . toBeCalledWith ( 'success' ) ;
384
+ expect ( successCallback ) . toHaveBeenCalledTimes ( 1 ) ;
385
+ expect ( successCallback ) . toHaveBeenCalledWith ( 1 , 1 , 100 , 100 ) ;
321
386
} ) ;
322
387
} ) ;
323
388
@@ -328,7 +393,7 @@ describe('ReactNative', () => {
328
393
} ) ) ;
329
394
330
395
[ View ] . forEach ( Component => {
331
- UIManager . measureLayout . mockReset ( ) ;
396
+ UIManager . measureLayout . mockClear ( ) ;
332
397
333
398
let viewRef ;
334
399
let otherRef ;
@@ -350,29 +415,12 @@ describe('ReactNative', () => {
350
415
) ;
351
416
352
417
expect ( UIManager . measureLayout ) . not . toBeCalled ( ) ;
353
-
354
418
const successCallback = jest . fn ( ) ;
355
419
const failureCallback = jest . fn ( ) ;
356
420
viewRef . measureLayout ( otherRef , successCallback , failureCallback ) ;
357
-
358
421
expect ( UIManager . measureLayout ) . toHaveBeenCalledTimes ( 1 ) ;
359
- expect ( UIManager . measureLayout ) . toHaveBeenCalledWith (
360
- expect . any ( Number ) ,
361
- expect . any ( Number ) ,
362
- expect . any ( Function ) ,
363
- expect . any ( Function ) ,
364
- ) ;
365
-
366
- const args = UIManager . measureLayout . mock . calls [ 0 ] ;
367
- expect ( args [ 0 ] ) . not . toEqual ( args [ 1 ] ) ;
368
- expect ( successCallback ) . not . toBeCalled ( ) ;
369
- expect ( failureCallback ) . not . toBeCalled ( ) ;
370
- args [ 2 ] ( 'fail' ) ;
371
- expect ( failureCallback ) . toBeCalledWith ( 'fail' ) ;
372
-
373
- expect ( successCallback ) . not . toBeCalled ( ) ;
374
- args [ 3 ] ( 'success' ) ;
375
- expect ( successCallback ) . toBeCalledWith ( 'success' ) ;
422
+ expect ( successCallback ) . toHaveBeenCalledTimes ( 1 ) ;
423
+ expect ( successCallback ) . toHaveBeenCalledWith ( 1 , 1 , 100 , 100 ) ;
376
424
} ) ;
377
425
} ) ;
378
426
0 commit comments