jest-expo 44.0.1 → 45.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jest-expo",
3
- "version": "44.0.1",
3
+ "version": "45.0.0",
4
4
  "description": "A Jest preset to painlessly test your Expo / React Native apps.",
5
5
  "license": "MIT",
6
6
  "main": "src",
@@ -31,7 +31,7 @@
31
31
  "preset": "jest-expo/universal"
32
32
  },
33
33
  "dependencies": {
34
- "@expo/config": "^6.0.6",
34
+ "@expo/config": "^6.0.14",
35
35
  "@jest/create-cache-key-function": "^26.6.2",
36
36
  "babel-jest": "^26.6.3",
37
37
  "find-up": "^5.0.0",
@@ -39,11 +39,11 @@
39
39
  "jest-watch-typeahead": "0.6.4",
40
40
  "json5": "^2.1.0",
41
41
  "lodash": "^4.17.19",
42
- "react-test-renderer": "~17.0.1"
42
+ "react-test-renderer": "~17.0.2"
43
43
  },
44
44
  "bugs": {
45
45
  "url": "https://github.com/expo/expo/issues"
46
46
  },
47
- "homepage": "https://github.com/expo/expo/tree/master/packages/jest-expo",
48
- "gitHead": "2c6354c1b6ef276bf8e1a8afae086f648d4fdf5c"
47
+ "homepage": "https://github.com/expo/expo/tree/main/packages/jest-expo",
48
+ "gitHead": "3142a9219df26221daddd41a0a8295f9a76603aa"
49
49
  }
@@ -78,11 +78,6 @@ module.exports = {
78
78
  getNativeModuleNamesAsync: { type: 'function', functionType: 'promise' },
79
79
  introspectNativeModuleAsync: { type: 'function', functionType: 'promise' },
80
80
  },
81
- ExpoRandom: {
82
- getConstants: { type: 'function' },
83
- getRandomBase64String: { type: 'function', functionType: 'sync' },
84
- getRandomBase64StringAsync: { type: 'function', functionType: 'promise' },
85
- },
86
81
  ExponentAV: { Qualities: { type: 'object' }, getConstants: { type: 'function' } },
87
82
  ExponentNotifications: {
88
83
  cancelAllScheduledNotificationsAsync: { type: 'function', functionType: 'promise' },
@@ -145,6 +140,7 @@ module.exports = {
145
140
  { key: 2, argumentsCount: 4, name: 'registerViewsForInteraction' },
146
141
  { key: 3, argumentsCount: 2, name: 'init' },
147
142
  ],
143
+ EASClient: [],
148
144
  ExpoAdsAdMob: [
149
145
  { key: 0, argumentsCount: 0, name: 'getPermissionsAsync' },
150
146
  { key: 1, argumentsCount: 1, name: 'setTestDeviceIDAsync' },
@@ -175,7 +171,6 @@ module.exports = {
175
171
  { key: 6, argumentsCount: 1, name: 'setUserIdAsync' },
176
172
  { key: 7, argumentsCount: 0, name: 'clearUserPropertiesAsync' },
177
173
  ],
178
- ExpoAppAuth: [{ key: 0, argumentsCount: 1, name: 'executeAsync' }],
179
174
  ExpoAppleAuthentication: [
180
175
  { key: 0, argumentsCount: 0, name: 'isAvailableAsync' },
181
176
  { key: 1, argumentsCount: 1, name: 'requestAsync' },
@@ -260,30 +255,37 @@ module.exports = {
260
255
  { key: 18, argumentsCount: 1, name: 'getSourceByIdAsync' },
261
256
  ],
262
257
  ExpoCellular: [
263
- { key: 'allowsVoipAsync', argumentsCount: 0, name: 'allowsVoipAsync' },
258
+ { name: 'allowsVoipAsync', argumentsCount: 0, key: 'allowsVoipAsync' },
259
+ { name: 'getCarrierNameAsync', key: 'getCarrierNameAsync', argumentsCount: 0 },
264
260
  {
265
- name: 'getCellularGenerationAsync',
266
261
  argumentsCount: 0,
267
- key: 'getCellularGenerationAsync',
268
- },
269
- {
270
262
  name: 'getMobileNetworkCodeAsync',
271
- argumentsCount: 0,
272
263
  key: 'getMobileNetworkCodeAsync',
273
264
  },
274
- { name: 'getCarrierNameAsync', key: 'getCarrierNameAsync', argumentsCount: 0 },
275
265
  {
276
266
  key: 'getMobileCountryCodeAsync',
277
267
  argumentsCount: 0,
278
268
  name: 'getMobileCountryCodeAsync',
279
269
  },
280
- { key: 'getIsoCountryCodeAsync', name: 'getIsoCountryCodeAsync', argumentsCount: 0 },
270
+ {
271
+ name: 'getCellularGenerationAsync',
272
+ key: 'getCellularGenerationAsync',
273
+ argumentsCount: 0,
274
+ },
275
+ { key: 'getIsoCountryCodeAsync', argumentsCount: 0, name: 'getIsoCountryCodeAsync' },
281
276
  ],
282
277
  ExpoClipboard: [
283
- { key: 'startObserving', name: 'startObserving', argumentsCount: 0 },
284
- { argumentsCount: 0, key: 'getStringAsync', name: 'getStringAsync' },
285
- { key: 'setString', name: 'setString', argumentsCount: 1 },
286
- { argumentsCount: 0, name: 'stopObserving', key: 'stopObserving' },
278
+ { name: 'getStringAsync', argumentsCount: 1, key: 'getStringAsync' },
279
+ { key: 'getImageAsync', name: 'getImageAsync', argumentsCount: 1 },
280
+ { name: 'setImageAsync', key: 'setImageAsync', argumentsCount: 1 },
281
+ { key: 'stopObserving', argumentsCount: 0, name: 'stopObserving' },
282
+ { argumentsCount: 0, key: 'getUrlAsync', name: 'getUrlAsync' },
283
+ { key: 'setUrlAsync', argumentsCount: 1, name: 'setUrlAsync' },
284
+ { argumentsCount: 0, name: 'hasUrlAsync', key: 'hasUrlAsync' },
285
+ { name: 'startObserving', key: 'startObserving', argumentsCount: 0 },
286
+ { argumentsCount: 2, key: 'setStringAsync', name: 'setStringAsync' },
287
+ { key: 'hasStringAsync', argumentsCount: 0, name: 'hasStringAsync' },
288
+ { argumentsCount: 0, name: 'hasImageAsync', key: 'hasImageAsync' },
287
289
  ],
288
290
  ExpoContacts: [
289
291
  { key: 0, argumentsCount: 0, name: 'getDefaultContainerIdentifierAsync' },
@@ -305,7 +307,10 @@ module.exports = {
305
307
  { key: 16, argumentsCount: 1, name: 'writeContactToFileAsync' },
306
308
  { key: 17, argumentsCount: 0, name: 'dismissFormAsync' },
307
309
  ],
308
- ExpoCrypto: [{ key: 0, argumentsCount: 3, name: 'digestStringAsync' }],
310
+ ExpoCrypto: [
311
+ { key: 'digestString', argumentsCount: 3, name: 'digestString' },
312
+ { key: 'digestStringAsync', argumentsCount: 3, name: 'digestStringAsync' },
313
+ ],
309
314
  ExpoDevice: [
310
315
  { key: 0, argumentsCount: 0, name: 'getDeviceTypeAsync' },
311
316
  { key: 1, argumentsCount: 0, name: 'isRootedExperimentalAsync' },
@@ -317,11 +322,10 @@ module.exports = {
317
322
  ExpoFirebaseAnalytics: [
318
323
  { key: 0, argumentsCount: 2, name: 'logEvent' },
319
324
  { key: 1, argumentsCount: 1, name: 'setUserId' },
320
- { key: 2, argumentsCount: 0, name: 'resetAnalyticsData' },
321
- { key: 3, argumentsCount: 2, name: 'setCurrentScreen' },
322
- { key: 4, argumentsCount: 1, name: 'setUserProperties' },
323
- { key: 5, argumentsCount: 1, name: 'setSessionTimeoutDuration' },
324
- { key: 6, argumentsCount: 1, name: 'setAnalyticsCollectionEnabled' },
325
+ { key: 2, argumentsCount: 1, name: 'setUserProperties' },
326
+ { key: 3, argumentsCount: 0, name: 'resetAnalyticsData' },
327
+ { key: 4, argumentsCount: 1, name: 'setSessionTimeoutDuration' },
328
+ { key: 5, argumentsCount: 1, name: 'setAnalyticsCollectionEnabled' },
325
329
  ],
326
330
  ExpoFirebaseCore: [],
327
331
  ExpoFontLoader: [{ key: 0, argumentsCount: 2, name: 'loadAsync' }],
@@ -337,14 +341,17 @@ module.exports = {
337
341
  { key: 8, argumentsCount: 0, name: 'isConnectedAsync' },
338
342
  ],
339
343
  ExpoHaptics: [
340
- { argumentsCount: 1, name: 'impactAsync', key: 'impactAsync' },
341
- { key: 'selectionAsync', name: 'selectionAsync', argumentsCount: 0 },
344
+ { argumentsCount: 0, name: 'selectionAsync', key: 'selectionAsync' },
345
+ { key: 'impactAsync', argumentsCount: 1, name: 'impactAsync' },
342
346
  { key: 'notificationAsync', name: 'notificationAsync', argumentsCount: 1 },
343
347
  ],
344
- ExpoImageManipulator: [{ key: 0, argumentsCount: 3, name: 'manipulateAsync' }],
348
+ ExpoImageManipulator: [
349
+ { argumentsCount: 3, key: 'manipulateAsync', name: 'manipulateAsync' },
350
+ ],
345
351
  ExpoKeepAwake: [
346
- { key: 0, argumentsCount: 1, name: 'activate' },
347
- { key: 1, argumentsCount: 1, name: 'deactivate' },
352
+ { key: 'isActivated', name: 'isActivated', argumentsCount: 0 },
353
+ { key: 'activate', argumentsCount: 1, name: 'activate' },
354
+ { key: 'deactivate', name: 'deactivate', argumentsCount: 1 },
348
355
  ],
349
356
  ExpoLinearGradient: [],
350
357
  ExpoLocalAuthentication: [
@@ -355,7 +362,7 @@ module.exports = {
355
362
  { key: 4, argumentsCount: 1, name: 'authenticateAsync' },
356
363
  ],
357
364
  ExpoLocalization: [
358
- { argumentsCount: 0, key: 'getLocalizationAsync', name: 'getLocalizationAsync' },
365
+ { argumentsCount: 0, name: 'getLocalizationAsync', key: 'getLocalizationAsync' },
359
366
  ],
360
367
  ExpoLocation: [
361
368
  { key: 0, argumentsCount: 2, name: 'watchPositionImplAsync' },
@@ -422,6 +429,14 @@ module.exports = {
422
429
  ],
423
430
  ExpoPublisherBannerView: [],
424
431
  ExpoPushTokenManager: [{ key: 0, argumentsCount: 0, name: 'getDevicePushTokenAsync' }],
432
+ ExpoRandom: [
433
+ { key: 'getRandomBase64String', argumentsCount: 1, name: 'getRandomBase64String' },
434
+ {
435
+ name: 'getRandomBase64StringAsync',
436
+ key: 'getRandomBase64StringAsync',
437
+ argumentsCount: 1,
438
+ },
439
+ ],
425
440
  ExpoSMS: [
426
441
  { key: 0, argumentsCount: 0, name: 'isAvailableAsync' },
427
442
  { key: 1, argumentsCount: 3, name: 'sendSMSAsync' },
@@ -453,8 +468,8 @@ module.exports = {
453
468
  { key: 1, argumentsCount: 0, name: 'requestReview' },
454
469
  ],
455
470
  ExpoSystemUI: [
456
- { name: 'setBackgroundColorAsync', argumentsCount: 1, key: 'setBackgroundColorAsync' },
457
471
  { argumentsCount: 0, name: 'getBackgroundColorAsync', key: 'getBackgroundColorAsync' },
472
+ { key: 'setBackgroundColorAsync', argumentsCount: 1, name: 'setBackgroundColorAsync' },
458
473
  ],
459
474
  ExpoTaskManager: [
460
475
  { key: 0, argumentsCount: 0, name: 'isAvailableAsync' },
@@ -466,8 +481,8 @@ module.exports = {
466
481
  { key: 6, argumentsCount: 0, name: 'getRegisteredTasksAsync' },
467
482
  ],
468
483
  ExpoTrackingTransparency: [
469
- { name: 'requestPermissionsAsync', key: 'requestPermissionsAsync', argumentsCount: 0 },
470
- { argumentsCount: 0, name: 'getPermissionsAsync', key: 'getPermissionsAsync' },
484
+ { name: 'getPermissionsAsync', argumentsCount: 0, key: 'getPermissionsAsync' },
485
+ { key: 'requestPermissionsAsync', argumentsCount: 0, name: 'requestPermissionsAsync' },
471
486
  ],
472
487
  ExpoUpdates: [
473
488
  { key: 0, argumentsCount: 0, name: 'checkForUpdateAsync' },
@@ -477,14 +492,18 @@ module.exports = {
477
492
  ExpoVideoManager: [{ key: 0, argumentsCount: 2, name: 'setFullscreen' }],
478
493
  ExpoVideoThumbnails: [{ key: 0, argumentsCount: 2, name: 'getThumbnail' }],
479
494
  ExpoWebBrowser: [
480
- { key: 0, argumentsCount: 1, name: 'coolDownAsync' },
481
- { key: 1, argumentsCount: 0, name: 'dismissBrowser' },
482
- { key: 2, argumentsCount: 2, name: 'openBrowserAsync' },
483
- { key: 3, argumentsCount: 2, name: 'mayInitWithUrlAsync' },
484
- { key: 4, argumentsCount: 0, name: 'dismissAuthSession' },
485
- { key: 5, argumentsCount: 1, name: 'warmUpAsync' },
486
- { key: 6, argumentsCount: 0, name: 'getCustomTabsSupportingBrowsers' },
487
- { key: 7, argumentsCount: 2, name: 'openAuthSessionAsync' },
495
+ { argumentsCount: 0, name: 'dismissBrowser', key: 'dismissBrowser' },
496
+ { key: 'openBrowserAsync', argumentsCount: 2, name: 'openBrowserAsync' },
497
+ { key: 'dismissAuthSession', name: 'dismissAuthSession', argumentsCount: 0 },
498
+ { key: 'warmUpAsync', argumentsCount: 0, name: 'warmUpAsync' },
499
+ { name: 'mayInitWithUrlAsync', argumentsCount: 0, key: 'mayInitWithUrlAsync' },
500
+ {
501
+ name: 'getCustomTabsSupportingBrowsers',
502
+ key: 'getCustomTabsSupportingBrowsers',
503
+ argumentsCount: 0,
504
+ },
505
+ { name: 'openAuthSessionAsync', key: 'openAuthSessionAsync', argumentsCount: 3 },
506
+ { key: 'coolDownAsync', argumentsCount: 0, name: 'coolDownAsync' },
488
507
  ],
489
508
  ExponentAV: [
490
509
  { key: 0, argumentsCount: 1, name: 'getStatusForVideo' },
@@ -492,21 +511,24 @@ module.exports = {
492
511
  { key: 2, argumentsCount: 0, name: 'unloadAudioRecorder' },
493
512
  { key: 3, argumentsCount: 0, name: 'stopAudioRecording' },
494
513
  { key: 4, argumentsCount: 0, name: 'requestPermissionsAsync' },
495
- { key: 5, argumentsCount: 3, name: 'loadForVideo' },
496
- { key: 6, argumentsCount: 1, name: 'setAudioIsEnabled' },
497
- { key: 7, argumentsCount: 1, name: 'prepareAudioRecorder' },
498
- { key: 8, argumentsCount: 2, name: 'replayVideo' },
499
- { key: 9, argumentsCount: 0, name: 'getPermissionsAsync' },
500
- { key: 10, argumentsCount: 1, name: 'unloadForSound' },
501
- { key: 11, argumentsCount: 2, name: 'setStatusForSound' },
502
- { key: 12, argumentsCount: 1, name: 'unloadForVideo' },
503
- { key: 13, argumentsCount: 2, name: 'replaySound' },
504
- { key: 14, argumentsCount: 0, name: 'getAudioRecordingStatus' },
505
- { key: 15, argumentsCount: 2, name: 'setStatusForVideo' },
506
- { key: 16, argumentsCount: 2, name: 'loadForSound' },
507
- { key: 17, argumentsCount: 0, name: 'pauseAudioRecording' },
508
- { key: 18, argumentsCount: 1, name: 'getStatusForSound' },
509
- { key: 19, argumentsCount: 0, name: 'startAudioRecording' },
514
+ { key: 5, argumentsCount: 1, name: 'setInput' },
515
+ { key: 6, argumentsCount: 3, name: 'loadForVideo' },
516
+ { key: 7, argumentsCount: 1, name: 'setAudioIsEnabled' },
517
+ { key: 8, argumentsCount: 1, name: 'prepareAudioRecorder' },
518
+ { key: 9, argumentsCount: 2, name: 'replayVideo' },
519
+ { key: 10, argumentsCount: 0, name: 'getPermissionsAsync' },
520
+ { key: 11, argumentsCount: 1, name: 'unloadForSound' },
521
+ { key: 12, argumentsCount: 2, name: 'setStatusForSound' },
522
+ { key: 13, argumentsCount: 1, name: 'unloadForVideo' },
523
+ { key: 14, argumentsCount: 2, name: 'replaySound' },
524
+ { key: 15, argumentsCount: 0, name: 'getAvailableInputs' },
525
+ { key: 16, argumentsCount: 0, name: 'getAudioRecordingStatus' },
526
+ { key: 17, argumentsCount: 2, name: 'setStatusForVideo' },
527
+ { key: 18, argumentsCount: 2, name: 'loadForSound' },
528
+ { key: 19, argumentsCount: 0, name: 'pauseAudioRecording' },
529
+ { key: 20, argumentsCount: 1, name: 'getStatusForSound' },
530
+ { key: 21, argumentsCount: 0, name: 'getCurrentInput' },
531
+ { key: 22, argumentsCount: 0, name: 'startAudioRecording' },
510
532
  ],
511
533
  ExponentAccelerometer: [
512
534
  { key: 0, argumentsCount: 0, name: 'isAvailableAsync' },
@@ -584,12 +606,28 @@ module.exports = {
584
606
  { key: 1, argumentsCount: 1, name: 'setUpdateInterval' },
585
607
  ],
586
608
  ExponentImagePicker: [
587
- { key: 0, argumentsCount: 1, name: 'getMediaLibraryPermissionsAsync' },
588
- { key: 1, argumentsCount: 0, name: 'requestCameraPermissionsAsync' },
589
- { key: 2, argumentsCount: 1, name: 'requestMediaLibraryPermissionsAsync' },
590
- { key: 3, argumentsCount: 1, name: 'launchCameraAsync' },
591
- { key: 4, argumentsCount: 0, name: 'getCameraPermissionsAsync' },
592
- { key: 5, argumentsCount: 1, name: 'launchImageLibraryAsync' },
609
+ {
610
+ name: 'requestMediaLibraryPermissionsAsync',
611
+ argumentsCount: 1,
612
+ key: 'requestMediaLibraryPermissionsAsync',
613
+ },
614
+ {
615
+ name: 'requestCameraPermissionsAsync',
616
+ argumentsCount: 0,
617
+ key: 'requestCameraPermissionsAsync',
618
+ },
619
+ {
620
+ argumentsCount: 1,
621
+ name: 'getMediaLibraryPermissionsAsync',
622
+ key: 'getMediaLibraryPermissionsAsync',
623
+ },
624
+ { key: 'launchCameraAsync', name: 'launchCameraAsync', argumentsCount: 1 },
625
+ { argumentsCount: 1, name: 'launchImageLibraryAsync', key: 'launchImageLibraryAsync' },
626
+ {
627
+ argumentsCount: 0,
628
+ name: 'getCameraPermissionsAsync',
629
+ key: 'getCameraPermissionsAsync',
630
+ },
593
631
  ],
594
632
  ExponentMagnetometer: [
595
633
  { key: 0, argumentsCount: 0, name: 'isAvailableAsync' },
@@ -630,6 +668,7 @@ module.exports = {
630
668
  ExponentSQLite: [
631
669
  { key: 0, argumentsCount: 1, name: 'close' },
632
670
  { key: 1, argumentsCount: 3, name: 'exec' },
671
+ { key: 2, argumentsCount: 1, name: 'deleteAsync' },
633
672
  ],
634
673
  ExponentSegment: [
635
674
  { key: 0, argumentsCount: 1, name: 'setEnabledAsync' },
@@ -681,11 +720,9 @@ module.exports = {
681
720
  setMeditationService: { type: 'function' },
682
721
  setUrlPrefix: { type: 'function' },
683
722
  },
684
- ExpoAppAuth: {
685
- OAuthRedirect: { type: 'array' },
686
- URLSchemes: { type: 'array' },
723
+ EASClient: {
687
724
  addListener: { type: 'function' },
688
- executeAsync: { type: 'function' },
725
+ clientID: { type: 'string' },
689
726
  removeListeners: { type: 'function' },
690
727
  },
691
728
  ExpoApplication: {
@@ -714,7 +751,7 @@ module.exports = {
714
751
  getBatteryLevelAsync: { type: 'function' },
715
752
  getBatteryStateAsync: { type: 'function' },
716
753
  isLowPowerModeEnabledAsync: { type: 'function' },
717
- isSupported: { type: 'boolean', mock: true },
754
+ isSupported: { type: 'boolean', mock: false },
718
755
  removeListeners: { type: 'function' },
719
756
  },
720
757
  ExpoCellular: {
@@ -735,23 +772,37 @@ module.exports = {
735
772
  },
736
773
  ExpoClipboard: {
737
774
  addListener: { type: 'function' },
775
+ getImageAsync: { type: 'function' },
738
776
  getStringAsync: { type: 'function' },
777
+ getUrlAsync: { type: 'function' },
778
+ hasImageAsync: { type: 'function' },
779
+ hasStringAsync: { type: 'function' },
780
+ hasUrlAsync: { type: 'function' },
739
781
  removeListeners: { type: 'function' },
740
- setString: { type: 'function' },
782
+ setImageAsync: { type: 'function' },
783
+ setStringAsync: { type: 'function' },
784
+ setUrlAsync: { type: 'function' },
741
785
  startObserving: { type: 'function' },
742
786
  stopObserving: { type: 'function' },
743
787
  },
788
+ ExpoCrypto: {
789
+ addListener: { type: 'function' },
790
+ digestString: { type: 'function' },
791
+ digestStringAsync: { type: 'function' },
792
+ removeListeners: { type: 'function' },
793
+ },
744
794
  ExpoDevice: {
745
795
  addListener: { type: 'function' },
746
796
  brand: { type: 'string' },
747
797
  deviceName: { type: 'string' },
748
- deviceYearClass: { type: 'number', mock: 2020 },
798
+ deviceYearClass: { type: 'number', mock: 2022 },
749
799
  getDeviceTypeAsync: { type: 'function' },
750
800
  getUptimeAsync: { type: 'function' },
751
- isDevice: { type: 'boolean', mock: true },
801
+ isDevice: { type: 'boolean', mock: false },
752
802
  isRootedExperimentalAsync: { type: 'function' },
753
803
  manufacturer: { type: 'string' },
754
804
  modelId: { type: 'string' },
805
+ modelName: { type: 'string' },
755
806
  osBuildId: { type: 'string' },
756
807
  osInternalBuildId: { type: 'string' },
757
808
  osName: { type: 'string' },
@@ -802,6 +853,18 @@ module.exports = {
802
853
  removeListeners: { type: 'function' },
803
854
  selectionAsync: { type: 'function' },
804
855
  },
856
+ ExpoImageManipulator: {
857
+ addListener: { type: 'function' },
858
+ manipulateAsync: { type: 'function' },
859
+ removeListeners: { type: 'function' },
860
+ },
861
+ ExpoKeepAwake: {
862
+ activate: { type: 'function' },
863
+ addListener: { type: 'function' },
864
+ deactivate: { type: 'function' },
865
+ isActivated: { type: 'function' },
866
+ removeListeners: { type: 'function' },
867
+ },
805
868
  ExpoLinearGradient: {
806
869
  addListener: { type: 'function' },
807
870
  removeListeners: { type: 'function' },
@@ -821,6 +884,12 @@ module.exports = {
821
884
  removeListeners: { type: 'function' },
822
885
  timezone: { type: 'string' },
823
886
  },
887
+ ExpoRandom: {
888
+ addListener: { type: 'function' },
889
+ getRandomBase64String: { type: 'function' },
890
+ getRandomBase64StringAsync: { type: 'function' },
891
+ removeListeners: { type: 'function' },
892
+ },
824
893
  ExpoSecureStore: {
825
894
  AFTER_FIRST_UNLOCK: { type: 'number', mock: 0 },
826
895
  AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY: { type: 'number', mock: 1 },
@@ -861,12 +930,15 @@ module.exports = {
861
930
  },
862
931
  ExpoUpdates: {
863
932
  addListener: { type: 'function' },
933
+ channel: { type: 'string' },
864
934
  checkForUpdateAsync: { type: 'function' },
865
935
  fetchUpdateAsync: { type: 'function' },
866
936
  isEnabled: { type: 'boolean', mock: false },
867
937
  isMissingRuntimeVersion: { type: 'boolean', mock: false },
938
+ releaseChannel: { type: 'string' },
868
939
  reload: { type: 'function' },
869
940
  removeListeners: { type: 'function' },
941
+ runtimeVersion: { type: 'string' },
870
942
  },
871
943
  ExpoVideoManager: {
872
944
  ScaleAspectFill: { type: 'string' },
@@ -877,10 +949,24 @@ module.exports = {
877
949
  removeListeners: { type: 'function' },
878
950
  setFullscreen: { type: 'function' },
879
951
  },
952
+ ExpoWebBrowser: {
953
+ addListener: { type: 'function' },
954
+ coolDownAsync: { type: 'function' },
955
+ dismissAuthSession: { type: 'function' },
956
+ dismissBrowser: { type: 'function' },
957
+ getCustomTabsSupportingBrowsers: { type: 'function' },
958
+ mayInitWithUrlAsync: { type: 'function' },
959
+ openAuthSessionAsync: { type: 'function' },
960
+ openBrowserAsync: { type: 'function' },
961
+ removeListeners: { type: 'function' },
962
+ warmUpAsync: { type: 'function' },
963
+ },
880
964
  ExponentAV: {
881
965
  Qualities: { type: 'object' },
882
966
  addListener: { type: 'function' },
883
967
  getAudioRecordingStatus: { type: 'function' },
968
+ getAvailableInputs: { type: 'function' },
969
+ getCurrentInput: { type: 'function' },
884
970
  getPermissionsAsync: { type: 'function' },
885
971
  getStatusForSound: { type: 'function' },
886
972
  getStatusForVideo: { type: 'function' },
@@ -894,6 +980,7 @@ module.exports = {
894
980
  requestPermissionsAsync: { type: 'function' },
895
981
  setAudioIsEnabled: { type: 'function' },
896
982
  setAudioMode: { type: 'function' },
983
+ setInput: { type: 'function' },
897
984
  setStatusForSound: { type: 'function' },
898
985
  setStatusForVideo: { type: 'function' },
899
986
  startAudioRecording: { type: 'function' },
@@ -931,7 +1018,7 @@ module.exports = {
931
1018
  appOwnership: { type: 'string' },
932
1019
  debugMode: { type: 'boolean', mock: true },
933
1020
  deviceName: { type: 'string' },
934
- deviceYearClass: { type: 'number', mock: 2021 },
1021
+ deviceYearClass: { type: 'number', mock: 2022 },
935
1022
  executionEnvironment: { type: 'string' },
936
1023
  experienceUrl: { type: 'string' },
937
1024
  expoRuntimeVersion: { type: 'string' },
@@ -983,6 +1070,16 @@ module.exports = {
983
1070
  uploadTaskStartAsync: { type: 'function' },
984
1071
  writeAsStringAsync: { type: 'function' },
985
1072
  },
1073
+ ExponentImagePicker: {
1074
+ addListener: { type: 'function' },
1075
+ getCameraPermissionsAsync: { type: 'function' },
1076
+ getMediaLibraryPermissionsAsync: { type: 'function' },
1077
+ launchCameraAsync: { type: 'function' },
1078
+ launchImageLibraryAsync: { type: 'function' },
1079
+ removeListeners: { type: 'function' },
1080
+ requestCameraPermissionsAsync: { type: 'function' },
1081
+ requestMediaLibraryPermissionsAsync: { type: 'function' },
1082
+ },
986
1083
  ExponentMediaLibrary: {
987
1084
  CHANGE_LISTENER_NAME: { type: 'string' },
988
1085
  MediaType: { type: 'object' },
@@ -1015,32 +1112,50 @@ module.exports = {
1015
1112
  },
1016
1113
  },
1017
1114
  },
1018
- viewManagersNames: {
1019
- type: 'array',
1020
- mock: [
1021
- 'AdIconView',
1022
- 'AdOptionsView',
1023
- 'CTKBannerView',
1024
- 'CTKNativeAd',
1025
- 'ExpoAdsAdMobBannerView',
1026
- 'ExpoAdsPublisherBannerView',
1027
- 'ExpoAppleAuthenticationButtonContinueBlack',
1028
- 'ExpoAppleAuthenticationButtonContinueWhite',
1029
- 'ExpoAppleAuthenticationButtonContinueWhiteOutline',
1030
- 'ExpoAppleAuthenticationButtonSignInBlack',
1031
- 'ExpoAppleAuthenticationButtonSignInWhite',
1032
- 'ExpoAppleAuthenticationButtonSignInWhiteOutline',
1033
- 'ExpoAppleAuthenticationButtonSignUpBlack',
1034
- 'ExpoAppleAuthenticationButtonSignUpWhite',
1035
- 'ExpoAppleAuthenticationButtonSignUpWhiteOutline',
1036
- 'ExpoBarCodeScannerView',
1037
- 'ExpoBlurView',
1038
- 'ExpoLinearGradient',
1039
- 'ExpoVideoView',
1040
- 'ExponentCamera',
1041
- 'ExponentGLView',
1042
- 'MediaView',
1043
- ],
1115
+ viewManagersMetadata: {
1116
+ type: 'object',
1117
+ mock: {
1118
+ ExpoAppleAuthenticationButtonSignUpBlack: { propsNames: ['cornerRadius'] },
1119
+ ExpoVideoView: { propsNames: ['status', 'resizeMode', 'useNativeControls', 'source'] },
1120
+ ExpoBlurView: { propsNames: ['intensity', 'tint'] },
1121
+ ExpoAdsAdMobBannerView: {
1122
+ propsNames: ['additionalRequestParams', 'bannerSize', 'adUnitID'],
1123
+ },
1124
+ AdOptionsView: { propsNames: ['nativeAdViewTag', 'iconColor'] },
1125
+ ExpoAppleAuthenticationButtonSignUpWhite: { propsNames: ['cornerRadius'] },
1126
+ ExpoAppleAuthenticationButtonSignInWhite: { propsNames: ['cornerRadius'] },
1127
+ ExpoLinearGradient: { propsNames: ['colors', 'startPoint', 'endPoint', 'locations'] },
1128
+ ExpoAppleAuthenticationButtonContinueWhiteOutline: { propsNames: ['cornerRadius'] },
1129
+ ExpoBarCodeScannerView: { propsNames: ['type', 'barCodeTypes'] },
1130
+ ExpoAppleAuthenticationButtonSignInWhiteOutline: { propsNames: ['cornerRadius'] },
1131
+ ExponentGLView: { propsNames: ['msaaSamples'] },
1132
+ ExpoAppleAuthenticationButtonContinueWhite: { propsNames: ['cornerRadius'] },
1133
+ CTKBannerView: { propsNames: ['placementId', 'size'] },
1134
+ MediaView: { propsNames: [] },
1135
+ ExpoAppleAuthenticationButtonSignUpWhiteOutline: { propsNames: ['cornerRadius'] },
1136
+ ExpoAppleAuthenticationButtonContinueBlack: { propsNames: ['cornerRadius'] },
1137
+ ExpoAppleAuthenticationButtonSignInBlack: { propsNames: ['cornerRadius'] },
1138
+ AdIconView: { propsNames: [] },
1139
+ CTKNativeAd: { propsNames: ['adsManager'] },
1140
+ ExponentCamera: {
1141
+ propsNames: [
1142
+ 'faceDetectorEnabled',
1143
+ 'focusDepth',
1144
+ 'barCodeScannerEnabled',
1145
+ 'faceDetectorSettings',
1146
+ 'pictureSize',
1147
+ 'zoom',
1148
+ 'flashMode',
1149
+ 'type',
1150
+ 'whiteBalance',
1151
+ 'autoFocus',
1152
+ 'barCodeScannerSettings',
1153
+ ],
1154
+ },
1155
+ ExpoAdsPublisherBannerView: {
1156
+ propsNames: ['additionalRequestParams', 'bannerSize', 'adUnitID'],
1157
+ },
1158
+ },
1044
1159
  },
1045
1160
  },
1046
1161
  RNAWSCognito: {
@@ -1107,25 +1222,20 @@ module.exports = {
1107
1222
  getConstants: { type: 'function' },
1108
1223
  removeListeners: { type: 'function', functionType: 'async' },
1109
1224
  },
1110
- RNCAppearance: {
1111
- addListener: { type: 'function', functionType: 'async' },
1112
- getConstants: { type: 'function' },
1113
- initialPreferences: { type: 'object' },
1114
- removeListeners: { type: 'function', functionType: 'async' },
1115
- },
1116
- RNCAppearanceProvider: {},
1117
1225
  RNCMaskedViewManager: {},
1118
1226
  RNCNetInfo: {
1119
1227
  addListener: { type: 'function', functionType: 'async' },
1228
+ configure: { type: 'function', functionType: 'async' },
1120
1229
  getConstants: { type: 'function' },
1121
1230
  getCurrentState: { type: 'function', functionType: 'promise' },
1122
1231
  removeListeners: { type: 'function', functionType: 'async' },
1123
1232
  },
1124
1233
  RNCPickerManager: {},
1125
- RNCSafeAreaProvider: {
1234
+ RNCSafeAreaContext: {
1126
1235
  getConstants: { type: 'function' },
1127
1236
  initialWindowMetrics: { type: 'object' },
1128
1237
  },
1238
+ RNCSafeAreaProvider: {},
1129
1239
  RNCSafeAreaView: {},
1130
1240
  RNCSegmentedControlManager: {},
1131
1241
  RNCSliderManager: {},
@@ -1355,7 +1465,6 @@ module.exports = {
1355
1465
  addListener: { type: 'function', functionType: 'async' },
1356
1466
  animateNextTransition: { type: 'function', functionType: 'async' },
1357
1467
  attachEvent: { type: 'function', functionType: 'async' },
1358
- configureProps: { type: 'function', functionType: 'async' },
1359
1468
  connectNodeToView: { type: 'function', functionType: 'async' },
1360
1469
  connectNodes: { type: 'function', functionType: 'async' },
1361
1470
  createNode: { type: 'function', functionType: 'async' },
@@ -1365,6 +1474,7 @@ module.exports = {
1365
1474
  dropNode: { type: 'function', functionType: 'async' },
1366
1475
  getConstants: { type: 'function' },
1367
1476
  getValue: { type: 'function', functionType: 'async' },
1477
+ installTurboModule: { type: 'function', functionType: 'async' },
1368
1478
  removeListeners: { type: 'function', functionType: 'async' },
1369
1479
  setValue: { type: 'function', functionType: 'async' },
1370
1480
  triggerRender: { type: 'function', functionType: 'async' },
@@ -95,14 +95,16 @@ for (const moduleName of Object.keys(expoModules)) {
95
95
  });
96
96
  }
97
97
 
98
- mockNativeModules.NativeUnimoduleProxy.viewManagersNames.forEach((viewManagerName) => {
99
- Object.defineProperty(mockNativeModules.UIManager, `ViewManagerAdapter_${viewManagerName}`, {
100
- get: () => ({
101
- NativeProps: {},
102
- directEventTypes: [],
103
- }),
104
- });
105
- });
98
+ Object.keys(mockNativeModules.NativeUnimoduleProxy.viewManagersMetadata).forEach(
99
+ (viewManagerName) => {
100
+ Object.defineProperty(mockNativeModules.UIManager, `ViewManagerAdapter_${viewManagerName}`, {
101
+ get: () => ({
102
+ NativeProps: {},
103
+ directEventTypes: [],
104
+ }),
105
+ });
106
+ }
107
+ );
106
108
 
107
109
  const modulesConstants = mockNativeModules.NativeUnimoduleProxy.modulesConstants;
108
110
  mockNativeModules.NativeUnimoduleProxy.modulesConstants = {