detox 20.15.0 → 20.16.0
Sign up to get free protection for your applications and to get access to all the features.
- package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0-javadoc.jar → 20.16.0/detox-20.16.0-javadoc.jar} +0 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-javadoc.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-javadoc.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-javadoc.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-javadoc.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0-sources.jar → 20.16.0/detox-20.16.0-sources.jar} +0 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.pom → 20.16.0/detox-20.16.0.pom} +1 -1
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0.pom.md5 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.16.0/detox-20.16.0.pom.sha512 +1 -0
- package/Detox-android/com/wix/detox/maven-metadata.xml +4 -4
- package/Detox-android/com/wix/detox/maven-metadata.xml.md5 +1 -1
- package/Detox-android/com/wix/detox/maven-metadata.xml.sha1 +1 -1
- package/Detox-android/com/wix/detox/maven-metadata.xml.sha256 +1 -1
- package/Detox-android/com/wix/detox/maven-metadata.xml.sha512 +1 -1
- package/Detox-ios-src.tbz +0 -0
- package/Detox-ios.tbz +0 -0
- package/detox.d.ts +20 -17
- package/package.json +2 -2
- package/src/devices/common/drivers/ios/tools/AppleSimUtils.js +110 -15
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-javadoc.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-javadoc.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-javadoc.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-javadoc.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.15.0/detox-20.15.0.pom.sha512 +0 -1
- /package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar → 20.16.0/detox-20.16.0.aar} +0 -0
- /package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar.md5 → 20.16.0/detox-20.16.0.aar.md5} +0 -0
- /package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar.sha1 → 20.16.0/detox-20.16.0.aar.sha1} +0 -0
- /package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar.sha256 → 20.16.0/detox-20.16.0.aar.sha256} +0 -0
- /package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar.sha512 → 20.16.0/detox-20.16.0.aar.sha512} +0 -0
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
56f5ec5b7efbb230f3238c004a5fe715
|
@@ -0,0 +1 @@
|
|
1
|
+
64494abc41fe95ddfa2592069865471684bee013
|
@@ -0,0 +1 @@
|
|
1
|
+
a59fe4333df991b4188fe010b85fd8cd739ea7244d8feb096ed77b42ec178d63
|
@@ -0,0 +1 @@
|
|
1
|
+
623c51f747c437bd88a7421ac94e30d1c4d9c11f7aca8066746213c80e79eb7aba7a1d067dbf1033ae710deb021fdaf503304f387e43ae6333c763786a64bf9f
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
65e9a1e222c5bd2d0d8f1adbb87e81dc
|
@@ -0,0 +1 @@
|
|
1
|
+
a619619716feca26448febd692de8dac38314100
|
@@ -0,0 +1 @@
|
|
1
|
+
5aa3a4be5939728a238f7ed475ee6e6d55d0eef81d1f84fc842029a7ba597c58
|
@@ -0,0 +1 @@
|
|
1
|
+
61cf8afa304f860372a728279633e767070bddea071a2de58ff6b23fac2ef61e472ba4191704a8175cbd8cf1b10c526fae02db7205b8dcc5696d8f76e9441ab2
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
4
4
|
<groupId>com.wix</groupId>
|
5
5
|
<artifactId>detox</artifactId>
|
6
|
-
<version>20.
|
6
|
+
<version>20.16.0</version>
|
7
7
|
<packaging>aar</packaging>
|
8
8
|
<name>Detox</name>
|
9
9
|
<description>Gray box end-to-end testing and automation library for mobile apps</description>
|
@@ -0,0 +1 @@
|
|
1
|
+
6e8623d17be32c1363d08aa89e5fd3b2
|
@@ -0,0 +1 @@
|
|
1
|
+
2b12affbd8b37c465ddc003dd59c224c83eb31fa
|
@@ -0,0 +1 @@
|
|
1
|
+
1c812b8cb14e877335790a3dbf0ffd4db6e85c311e56050aa14853f1c78a7c90
|
@@ -0,0 +1 @@
|
|
1
|
+
27641bf294e773373fa00156c73180d0260f0ee0611d5bb3f3e40001560a0a1537eed5807196397be5742d513974f7281bb682b0c09d2865888863080b305a05
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<groupId>com.wix</groupId>
|
4
4
|
<artifactId>detox</artifactId>
|
5
5
|
<versioning>
|
6
|
-
<latest>20.
|
7
|
-
<release>20.
|
6
|
+
<latest>20.16.0</latest>
|
7
|
+
<release>20.16.0</release>
|
8
8
|
<versions>
|
9
|
-
<version>20.
|
9
|
+
<version>20.16.0</version>
|
10
10
|
</versions>
|
11
|
-
<lastUpdated>
|
11
|
+
<lastUpdated>20240114094649</lastUpdated>
|
12
12
|
</versioning>
|
13
13
|
</metadata>
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3a7cd4da4ea3dd3e5cf31ee3a0c6ad4b
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
d32146f04f20a32ac69562f7fec718954e1f925d
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
9440532f25a30a2d2c025159b566348219724e16f627e1c2cf80e384c9b40141
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
ff53b142b83374497a6450075bf40da6df3996a77522efb5555d59b61b17e39c59b3891250a9c53789845add208bd28cfdbc975cd9e6a262ff47dead71e1dd74
|
package/Detox-ios-src.tbz
CHANGED
Binary file
|
package/Detox-ios.tbz
CHANGED
Binary file
|
package/detox.d.ts
CHANGED
@@ -644,10 +644,11 @@ declare global {
|
|
644
644
|
*/
|
645
645
|
selectApp(app: string): Promise<void>;
|
646
646
|
|
647
|
+
// TODO: document permissions types.
|
647
648
|
/**
|
648
649
|
* Launch the app.
|
649
650
|
*
|
650
|
-
* <p>For info regarding launch arguments, refer to the [dedicated guide](https://wix.github.io/Detox/docs/
|
651
|
+
* <p>For info regarding launch arguments, refer to the [dedicated guide](https://wix.github.io/Detox/docs/guide/launch-args).
|
651
652
|
*
|
652
653
|
* @example
|
653
654
|
* // Terminate the app and launch it again. If set to false, the simulator will try to bring app from background,
|
@@ -1624,23 +1625,25 @@ declare global {
|
|
1624
1625
|
userTracking?: UserTrackingPermission;
|
1625
1626
|
}
|
1626
1627
|
|
1628
|
+
type BasicPermissionState = 'YES' | 'NO' | 'unset';
|
1629
|
+
type ExtendedPermissionState = 'YES' | 'NO' | 'unset' | 'limited';
|
1627
1630
|
type LocationPermission = 'always' | 'inuse' | 'never' | 'unset';
|
1628
|
-
|
1629
|
-
type CameraPermission =
|
1630
|
-
type ContactsPermission =
|
1631
|
-
type CalendarPermission =
|
1632
|
-
type HealthPermission =
|
1633
|
-
type HomekitPermission =
|
1634
|
-
type MediaLibraryPermission =
|
1635
|
-
type MicrophonePermission =
|
1636
|
-
type MotionPermission =
|
1637
|
-
type PhotosPermission =
|
1638
|
-
type RemindersPermission =
|
1639
|
-
type SiriPermission =
|
1640
|
-
type SpeechPermission =
|
1641
|
-
type NotificationsPermission =
|
1642
|
-
type FaceIDPermission =
|
1643
|
-
type UserTrackingPermission =
|
1631
|
+
|
1632
|
+
type CameraPermission = BasicPermissionState;
|
1633
|
+
type ContactsPermission = ExtendedPermissionState;
|
1634
|
+
type CalendarPermission = BasicPermissionState;
|
1635
|
+
type HealthPermission = BasicPermissionState;
|
1636
|
+
type HomekitPermission = BasicPermissionState;
|
1637
|
+
type MediaLibraryPermission = BasicPermissionState;
|
1638
|
+
type MicrophonePermission = BasicPermissionState;
|
1639
|
+
type MotionPermission = BasicPermissionState;
|
1640
|
+
type PhotosPermission = ExtendedPermissionState;
|
1641
|
+
type RemindersPermission = BasicPermissionState;
|
1642
|
+
type SiriPermission = BasicPermissionState;
|
1643
|
+
type SpeechPermission = BasicPermissionState;
|
1644
|
+
type NotificationsPermission = BasicPermissionState;
|
1645
|
+
type FaceIDPermission = BasicPermissionState;
|
1646
|
+
type UserTrackingPermission = BasicPermissionState;
|
1644
1647
|
|
1645
1648
|
interface DeviceLaunchAppConfig {
|
1646
1649
|
/**
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "detox",
|
3
3
|
"description": "E2E tests and automation for mobile",
|
4
|
-
"version": "20.
|
4
|
+
"version": "20.16.0",
|
5
5
|
"bin": {
|
6
6
|
"detox": "local-cli/cli.js"
|
7
7
|
},
|
@@ -109,5 +109,5 @@
|
|
109
109
|
"browserslist": [
|
110
110
|
"node 14"
|
111
111
|
],
|
112
|
-
"gitHead": "
|
112
|
+
"gitHead": "3d7cb5de27cf768dca7216e60806819672553f4a"
|
113
113
|
}
|
@@ -10,21 +10,123 @@ const environment = require('../../../../../utils/environment');
|
|
10
10
|
const log = require('../../../../../utils/logger').child({ cat: 'device' });
|
11
11
|
const { quote } = require('../../../../../utils/shellQuote');
|
12
12
|
|
13
|
+
const PERMISSIONS_VALUES = {
|
14
|
+
YES: 'YES',
|
15
|
+
NO: 'NO',
|
16
|
+
UNSET: 'unset',
|
17
|
+
LIMITED: 'limited',
|
18
|
+
};
|
19
|
+
|
20
|
+
const SIMCTL_SET_PERMISSION_ACTIONS ={
|
21
|
+
GRANT: 'grant',
|
22
|
+
REVOKE: 'revoke',
|
23
|
+
RESET: 'reset',
|
24
|
+
};
|
25
|
+
|
13
26
|
class AppleSimUtils {
|
14
27
|
async setPermissions(udid, bundleId, permissionsObj) {
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
28
|
+
for (const [service, value] of Object.entries(permissionsObj)) {
|
29
|
+
switch (service) {
|
30
|
+
case 'location':
|
31
|
+
switch (value) {
|
32
|
+
case 'always':
|
33
|
+
await this.setPermissionWithSimctl(udid, bundleId, SIMCTL_SET_PERMISSION_ACTIONS.GRANT, 'location-always');
|
34
|
+
break;
|
35
|
+
|
36
|
+
case 'inuse':
|
37
|
+
await this.setPermissionWithSimctl(udid, bundleId, SIMCTL_SET_PERMISSION_ACTIONS.GRANT, 'location');
|
38
|
+
break;
|
39
|
+
|
40
|
+
case 'never':
|
41
|
+
await this.setPermissionWithSimctl(udid, bundleId, SIMCTL_SET_PERMISSION_ACTIONS.REVOKE, 'location');
|
42
|
+
break;
|
43
|
+
|
44
|
+
case 'unset':
|
45
|
+
await this.setPermissionWithSimctl(udid, bundleId, SIMCTL_SET_PERMISSION_ACTIONS.RESET, 'location');
|
46
|
+
break;
|
47
|
+
}
|
48
|
+
|
49
|
+
break;
|
50
|
+
|
51
|
+
case 'contacts':
|
52
|
+
if (value === PERMISSIONS_VALUES.LIMITED) {
|
53
|
+
await this.setPermissionWithSimctl(udid, bundleId, SIMCTL_SET_PERMISSION_ACTIONS.GRANT, 'contacts-limited');
|
54
|
+
} else {
|
55
|
+
await this.setPermissionWithAppleSimUtils(udid, bundleId, service, value);
|
56
|
+
}
|
57
|
+
break;
|
58
|
+
|
59
|
+
case 'photos':
|
60
|
+
if (value === PERMISSIONS_VALUES.LIMITED) {
|
61
|
+
await this.setPermissionWithSimctl(udid, bundleId, SIMCTL_SET_PERMISSION_ACTIONS.GRANT, 'photos-add');
|
62
|
+
} else {
|
63
|
+
await this.setPermissionWithAppleSimUtils(udid, bundleId, service, value);
|
64
|
+
}
|
65
|
+
break;
|
66
|
+
|
67
|
+
// eslint-disable-next-line no-fallthrough
|
68
|
+
case 'calendar':
|
69
|
+
case 'camera':
|
70
|
+
case 'medialibrary':
|
71
|
+
case 'microphone':
|
72
|
+
case 'motion':
|
73
|
+
case 'reminders':
|
74
|
+
case 'siri':
|
75
|
+
// Simctl uses kebab-case for service names.
|
76
|
+
const simctlService = service.replace('medialibrary', 'media-library');
|
77
|
+
await this.setPermissionWithSimctl(udid, bundleId, this.basicPermissionValueToSimctlAction(value), simctlService);
|
78
|
+
break;
|
79
|
+
|
80
|
+
// Requires AppleSimUtils: unsupported by latest Simctl at the moment of writing this code.
|
81
|
+
// eslint-disable-next-line no-fallthrough
|
82
|
+
case 'notifications':
|
83
|
+
case 'health':
|
84
|
+
case 'homekit':
|
85
|
+
case 'speech':
|
86
|
+
case 'faceid':
|
87
|
+
case 'userTracking':
|
88
|
+
await this.setPermissionWithAppleSimUtils(udid, bundleId, service, value);
|
89
|
+
break;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
basicPermissionValueToSimctlAction(value) {
|
95
|
+
switch (value) {
|
96
|
+
case PERMISSIONS_VALUES.YES:
|
97
|
+
return SIMCTL_SET_PERMISSION_ACTIONS.GRANT;
|
98
|
+
|
99
|
+
case PERMISSIONS_VALUES.NO:
|
100
|
+
return SIMCTL_SET_PERMISSION_ACTIONS.REVOKE;
|
101
|
+
|
102
|
+
case PERMISSIONS_VALUES.UNSET:
|
103
|
+
return SIMCTL_SET_PERMISSION_ACTIONS.RESET;
|
104
|
+
}
|
105
|
+
}
|
19
106
|
|
107
|
+
async setPermissionWithSimctl(udid, bundleId, action, service) {
|
20
108
|
const options = {
|
21
|
-
|
109
|
+
cmd: `privacy ${udid} ${action} ${service} ${bundleId}`,
|
22
110
|
statusLogs: {
|
23
|
-
trying: `Trying to set permissions...`,
|
24
|
-
successful:
|
111
|
+
trying: `Trying to set permissions with Simctl: ${action} ${service}...`,
|
112
|
+
successful: `${service} permissions are set`
|
25
113
|
},
|
26
114
|
retries: 1,
|
27
115
|
};
|
116
|
+
|
117
|
+
await this._execSimctl(options);
|
118
|
+
}
|
119
|
+
|
120
|
+
async setPermissionWithAppleSimUtils(udid, bundleId, service, value) {
|
121
|
+
const options = {
|
122
|
+
args: `--byId ${udid} --bundle ${bundleId} --restartSB --setPermissions ${service}=${value}`,
|
123
|
+
statusLogs: {
|
124
|
+
trying: `Trying to set permissions with AppleSimUtils: ${service}=${value}...`,
|
125
|
+
successful: `${service} permissions are set`
|
126
|
+
},
|
127
|
+
retries: 1,
|
128
|
+
};
|
129
|
+
|
28
130
|
await this._execAppleSimUtils(options);
|
29
131
|
}
|
30
132
|
|
@@ -319,14 +421,7 @@ class AppleSimUtils {
|
|
319
421
|
}
|
320
422
|
|
321
423
|
async setLocation(udid, lat, lon) {
|
322
|
-
|
323
|
-
if (_.get(result, 'stdout')) {
|
324
|
-
await childProcess.execWithRetriesAndLogs(`fbsimctl ${udid} set_location ${lat} ${lon}`, { retries: 1 });
|
325
|
-
} else {
|
326
|
-
throw new DetoxRuntimeError(`setLocation currently supported only through fbsimctl.
|
327
|
-
Install fbsimctl using:
|
328
|
-
"brew tap facebook/fb && export CODE_SIGNING_REQUIRED=NO && brew install fbsimctl"`);
|
329
|
-
}
|
424
|
+
await this._execSimctl({ cmd: `location ${udid} set ${lat},${lon}` });
|
330
425
|
}
|
331
426
|
|
332
427
|
async resetContentAndSettings(udid) {
|
@@ -1 +0,0 @@
|
|
1
|
-
6af6a1128b61c579b4a5c82d2865f585
|
@@ -1 +0,0 @@
|
|
1
|
-
4dba1aa3f352698d234cccc7f69d8d3e69350458
|
@@ -1 +0,0 @@
|
|
1
|
-
0d73e6570afca6e11cefdb63125dd01bdd0f33143089402c752c506b5acf85a3
|
@@ -1 +0,0 @@
|
|
1
|
-
cda5ab07eac2a8371056647e4b6391a1c42e2d4a5b1a6a7a810a398ed4f29946441ea9da132a236cee7e523b09b6b6ea8f1510e5faaec0061193c84767e1d849
|
@@ -1 +0,0 @@
|
|
1
|
-
b912691ddb7318d42de9431f7435bc9a
|
@@ -1 +0,0 @@
|
|
1
|
-
5c90afac3b3a7d5fa2ba83e650604f6f9bc00682
|
@@ -1 +0,0 @@
|
|
1
|
-
5eabd613ae0284bc97755f7e29cf0d233e281ae7635afeeb0875437401c3ddb8
|
@@ -1 +0,0 @@
|
|
1
|
-
5ef628faf38474b46638efc54f932b15824f5735497279f0153fe9c6afc2f7de9a151ee46e51724ce93ff22515bf43b86147f8330c67a49b34dd45ce3b129c5d
|
@@ -1 +0,0 @@
|
|
1
|
-
b214c6ec949dbb966c2ab104243efbb5
|
@@ -1 +0,0 @@
|
|
1
|
-
91c5ac02c59420f8a6eaca4af5fa5a5d40901b92
|
@@ -1 +0,0 @@
|
|
1
|
-
8e39181294f58719e0d42ea4b6220526012c229b47ab6db988acd904a8bba64c
|
@@ -1 +0,0 @@
|
|
1
|
-
c919a336c80ca89a3d41975a6b8574539f93234105f7762870afdd1540ef44763b00ecf7860b6cb22457ff9c714047f5c78f9a341c9ad923fc8beb25fd1d1331
|
/package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar → 20.16.0/detox-20.16.0.aar}
RENAMED
File without changes
|
/package/Detox-android/com/wix/detox/{20.15.0/detox-20.15.0.aar.md5 → 20.16.0/detox-20.16.0.aar.md5}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|