detox 20.24.0 → 20.25.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.
Files changed (64) hide show
  1. package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0-sources.jar → 20.25.0/detox-20.25.0-sources.jar} +0 -0
  2. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0-sources.jar.md5 +1 -0
  3. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0-sources.jar.sha1 +1 -0
  4. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0-sources.jar.sha256 +1 -0
  5. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0-sources.jar.sha512 +1 -0
  6. package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0.pom → 20.25.0/detox-20.25.0.pom} +1 -1
  7. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0.pom.md5 +1 -0
  8. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0.pom.sha1 +1 -0
  9. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0.pom.sha256 +1 -0
  10. package/Detox-android/com/wix/detox/20.25.0/detox-20.25.0.pom.sha512 +1 -0
  11. package/Detox-android/com/wix/detox/maven-metadata.xml +4 -4
  12. package/Detox-android/com/wix/detox/maven-metadata.xml.md5 +1 -1
  13. package/Detox-android/com/wix/detox/maven-metadata.xml.sha1 +1 -1
  14. package/Detox-android/com/wix/detox/maven-metadata.xml.sha256 +1 -1
  15. package/Detox-android/com/wix/detox/maven-metadata.xml.sha512 +1 -1
  16. package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0-sources.jar → 20.25.0/detox-legacy-20.25.0-sources.jar} +0 -0
  17. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0-sources.jar.md5 +1 -0
  18. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0-sources.jar.sha1 +1 -0
  19. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0-sources.jar.sha256 +1 -0
  20. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0-sources.jar.sha512 +1 -0
  21. package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0.pom → 20.25.0/detox-legacy-20.25.0.pom} +1 -1
  22. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0.pom.md5 +1 -0
  23. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0.pom.sha1 +1 -0
  24. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0.pom.sha256 +1 -0
  25. package/Detox-android/com/wix/detox-legacy/20.25.0/detox-legacy-20.25.0.pom.sha512 +1 -0
  26. package/Detox-android/com/wix/detox-legacy/maven-metadata.xml +4 -4
  27. package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.md5 +1 -1
  28. package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.sha1 +1 -1
  29. package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.sha256 +1 -1
  30. package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.sha512 +1 -1
  31. package/Detox-ios-framework.tbz +0 -0
  32. package/Detox-ios-src.tbz +0 -0
  33. package/Detox-ios-xcuitest.tbz +0 -0
  34. package/package.json +2 -2
  35. package/src/devices/allocation/DeviceAllocator.js +7 -0
  36. package/src/devices/allocation/drivers/android/genycloud/GenyAllocDriver.js +9 -1
  37. package/src/devices/common/drivers/android/exec/ADB.js +8 -0
  38. package/src/realms/DetoxPrimaryContext.js +29 -16
  39. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0-sources.jar.md5 +0 -1
  40. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0-sources.jar.sha1 +0 -1
  41. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0-sources.jar.sha256 +0 -1
  42. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0-sources.jar.sha512 +0 -1
  43. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0.pom.md5 +0 -1
  44. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0.pom.sha1 +0 -1
  45. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0.pom.sha256 +0 -1
  46. package/Detox-android/com/wix/detox/20.24.0/detox-20.24.0.pom.sha512 +0 -1
  47. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0-sources.jar.md5 +0 -1
  48. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0-sources.jar.sha1 +0 -1
  49. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0-sources.jar.sha256 +0 -1
  50. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0-sources.jar.sha512 +0 -1
  51. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0.pom.md5 +0 -1
  52. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0.pom.sha1 +0 -1
  53. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0.pom.sha256 +0 -1
  54. package/Detox-android/com/wix/detox-legacy/20.24.0/detox-legacy-20.24.0.pom.sha512 +0 -1
  55. /package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0.aar → 20.25.0/detox-20.25.0.aar} +0 -0
  56. /package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0.aar.md5 → 20.25.0/detox-20.25.0.aar.md5} +0 -0
  57. /package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0.aar.sha1 → 20.25.0/detox-20.25.0.aar.sha1} +0 -0
  58. /package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0.aar.sha256 → 20.25.0/detox-20.25.0.aar.sha256} +0 -0
  59. /package/Detox-android/com/wix/detox/{20.24.0/detox-20.24.0.aar.sha512 → 20.25.0/detox-20.25.0.aar.sha512} +0 -0
  60. /package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0.aar → 20.25.0/detox-legacy-20.25.0.aar} +0 -0
  61. /package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0.aar.md5 → 20.25.0/detox-legacy-20.25.0.aar.md5} +0 -0
  62. /package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0.aar.sha1 → 20.25.0/detox-legacy-20.25.0.aar.sha1} +0 -0
  63. /package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0.aar.sha256 → 20.25.0/detox-legacy-20.25.0.aar.sha256} +0 -0
  64. /package/Detox-android/com/wix/detox-legacy/{20.24.0/detox-legacy-20.24.0.aar.sha512 → 20.25.0/detox-legacy-20.25.0.aar.sha512} +0 -0
@@ -0,0 +1 @@
1
+ 1ef4d5de8e6a4ecba3ed72380b788a83
@@ -0,0 +1 @@
1
+ bf218e51fdffafef09dbfc843a4e78a280e65d89
@@ -0,0 +1 @@
1
+ 6fc99e94e5a63dcfdec73700425a79685a1379d89894df57063ece91822a9e4d
@@ -0,0 +1 @@
1
+ 78ba7a9072d2a529054068b59f43da93616ffe5bce9cb99aacded5caf0aac926a3b68afa19dac3e714cf82bb74259a1dc94bf7de277296ea6843c6417676c712
@@ -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.24.0</version>
6
+ <version>20.25.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
+ 957806b8f4d6b7cc51959522d64dcb7f
@@ -0,0 +1 @@
1
+ feb3185877ed9e49f252ceba89b9a338a8780a7e
@@ -0,0 +1 @@
1
+ 720aecc2ad5d50ce4c088fb9c22477d7e1682f19b865e64b5f3bb40f316a471d
@@ -0,0 +1 @@
1
+ aeb1ef3a386a2214a8d59b5cfd6941167a3482a2037a0578d9508791784c7687c75ff3cfc8d344d4ed475e2d25f39c588243ea3e0b49371c02ffd0f340ad7a1d
@@ -3,11 +3,11 @@
3
3
  <groupId>com.wix</groupId>
4
4
  <artifactId>detox</artifactId>
5
5
  <versioning>
6
- <latest>20.24.0</latest>
7
- <release>20.24.0</release>
6
+ <latest>20.25.0</latest>
7
+ <release>20.25.0</release>
8
8
  <versions>
9
- <version>20.24.0</version>
9
+ <version>20.25.0</version>
10
10
  </versions>
11
- <lastUpdated>20240712095248</lastUpdated>
11
+ <lastUpdated>20240715205614</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- cbe838e81e9b2489895384dbf73d9855
1
+ 7190e56ff7f9476749c4b80df18b904f
@@ -1 +1 @@
1
- 248526814045318fcaeda09d11dcff993503e58c
1
+ 3dd6be11b5dfc415e669f7dae9b3a64d1c175366
@@ -1 +1 @@
1
- 674cb578d4b1ab1e1f0f3af2f9e6b7d237e9417840a73f4a55181cc61aa55a75
1
+ 1410ac33039127064c7d3e49dadc668c0f7e473f41d2cc900904d50340652623
@@ -1 +1 @@
1
- bf96117e1935d3a9c81337a743672b5ef93cc5c786026f5b2bca4118ab69c5c3b4a55600019581dc75f5b533e0fc310963e457df556d8b5108f2628aa246fbd8
1
+ ded5ced73efe397aba118e65aef95bb92b5de64ea19065c918bcfec049416209b07a08da188f221da3d57a666ee2c3446e8e197ce19d09802b4b4d8f7e7bcdd2
@@ -0,0 +1 @@
1
+ 65c4c13e340925f4aab9a63f04e0421d
@@ -0,0 +1 @@
1
+ 7fe9a252f0ff18215ca79bcae96b29b15e819711
@@ -0,0 +1 @@
1
+ aeb521a3fd006873fa3f0c7252b6fdc772d9264ede1f2ce85e3de69eafc0b136
@@ -0,0 +1 @@
1
+ 73329439f480b60ffca53d8244d27883adddba2b4d18c3753b8e6247cee9499674921b522c51fd2f1a2cd59dd84448e22dc7005f8b7c047d61a7aeaf515d8924
@@ -3,7 +3,7 @@
3
3
  <modelVersion>4.0.0</modelVersion>
4
4
  <groupId>com.wix</groupId>
5
5
  <artifactId>detox-legacy</artifactId>
6
- <version>20.24.0</version>
6
+ <version>20.25.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
+ 20f9a40218510a8b583767d4fe5c5b2b
@@ -0,0 +1 @@
1
+ 30587cdeead2f48ccc50d83c3a7e9f3f29aa3266
@@ -0,0 +1 @@
1
+ 6801fa55201f5da99902aef7e9b8e769128742421215ddc0838df2b42e06f539
@@ -0,0 +1 @@
1
+ a68a395358cf5998b6f531d3845189b2c3091d2d2ad84e96557458a413a3c891d5fcab1f21fee134422463a011473dfe472353d4b7b2f1e98cccda4537634346
@@ -3,11 +3,11 @@
3
3
  <groupId>com.wix</groupId>
4
4
  <artifactId>detox-legacy</artifactId>
5
5
  <versioning>
6
- <latest>20.24.0</latest>
7
- <release>20.24.0</release>
6
+ <latest>20.25.0</latest>
7
+ <release>20.25.0</release>
8
8
  <versions>
9
- <version>20.24.0</version>
9
+ <version>20.25.0</version>
10
10
  </versions>
11
- <lastUpdated>20240712095305</lastUpdated>
11
+ <lastUpdated>20240715205632</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- ebd10c4caa0af7ac57ef360ffe5e7c41
1
+ dade265a6ab1e6c2805c7c514248c301
@@ -1 +1 @@
1
- 82e96d3f328e2794534a91f0b921dd1c51413e8e
1
+ 2f0e11145b8c19b7d690ac624dded2d174b5d73d
@@ -1 +1 @@
1
- 1d2093dc2d529e5844dd5117be23864ddfc8101c2d5b5a935b48ce56cf434cb2
1
+ 4bc8b1de62674a27c93222c12a83391a17162ebd7eb724d98d4963a367a529d1
@@ -1 +1 @@
1
- 515cd3e14cf792392678590d01108ca641e8ae53db46446f4fa7bbbebc9a680b8efd5568b7b5306ce4ed46e12e36c3fd9fe5d8c05e412a25cfbd5b5fd17a963d
1
+ 7b65922619711eceecefd19ecc74f38b37f99d3356eb3c562084311c4fd65a80bae64ca6766da2db270856e83d92ca067103043ec4394d6e8fed84307f2a424b
Binary file
package/Detox-ios-src.tbz CHANGED
Binary file
Binary file
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.24.0",
4
+ "version": "20.25.0",
5
5
  "bin": {
6
6
  "detox": "local-cli/cli.js"
7
7
  },
@@ -115,5 +115,5 @@
115
115
  "browserslist": [
116
116
  "node 14"
117
117
  ],
118
- "gitHead": "4a442cee82115ef4eeb5dd618e8ab4d0281f4b2a"
118
+ "gitHead": "cc035471e072da19c16fc9e49983e00eddfe411b"
119
119
  }
@@ -4,6 +4,8 @@
4
4
  * @typedef {import('../common/drivers/DeviceCookie').DeviceCookie} DeviceCookie
5
5
  */
6
6
 
7
+ const _ = require('lodash');
8
+
7
9
  const log = require('../../utils/logger').child({ cat: 'device,device-allocation' });
8
10
  const traceMethods = require('../../utils/traceMethods');
9
11
 
@@ -16,6 +18,11 @@ class DeviceAllocator {
16
18
  this._counter = 0;
17
19
  this._ids = new Map();
18
20
  traceMethods(log, this, ['init', 'cleanup', 'emergencyCleanup']);
21
+
22
+ // Init and cleanup should be called once for each allocation driver type
23
+ this.init = _.once(this.init.bind(this));
24
+ this.cleanup = _.once(this.cleanup.bind(this));
25
+ this.emergencyCleanup = _.once(this.emergencyCleanup.bind(this));
19
26
  }
20
27
 
21
28
  /**
@@ -10,6 +10,7 @@ const log = require('../../../../../utils/logger').child({ cat: 'device' });
10
10
  const GenyRegistry = require('./GenyRegistry');
11
11
 
12
12
  const events = {
13
+ GENYCLOUD_INIT: { event: 'GENYCLOUD_INIT' },
13
14
  GENYCLOUD_TEARDOWN: { event: 'GENYCLOUD_TEARDOWN' },
14
15
  };
15
16
 
@@ -40,12 +41,19 @@ class GenyAllocDriver {
40
41
  this._instanceCounter = 0;
41
42
  }
42
43
 
44
+ async init() {
45
+ try {
46
+ await this._adb.startDaemon();
47
+ } catch (error) {
48
+ log.warn({ ...events.GENYCLOUD_INIT, error }, 'ADB server start failed; error ignored');
49
+ }
50
+ }
51
+
43
52
  /**
44
53
  * @param deviceConfig { Object }
45
54
  * @return {Promise<GenycloudEmulatorCookie>}
46
55
  */
47
56
  async allocate(deviceConfig) {
48
- await new Promise((resolve) => setTimeout(resolve, 10000));
49
57
  const deviceQuery = deviceConfig.device;
50
58
  const recipe = await this._recipeQuerying.getRecipeFromQuery(deviceQuery);
51
59
  this._assertRecipe(deviceQuery, recipe);
@@ -16,6 +16,14 @@ class ADB {
16
16
  this.adbBin = getAdbPath();
17
17
  }
18
18
 
19
+ async startDaemon() {
20
+ await this.adbCmd('', 'start-server', { retries: 0, verbosity: 'high' });
21
+ }
22
+
23
+ async killDaemon() {
24
+ await this.adbCmd('', 'kill-server', { retries: 0, verbosity: 'high' });
25
+ }
26
+
19
27
  async devices() {
20
28
  const { stdout } = await this.adbCmd('', 'devices', { verbosity: 'high' });
21
29
  /** @type {DeviceHandle[]} */
@@ -26,6 +26,7 @@ const _logFinalError = Symbol('logFinalError');
26
26
  const _cookieAllocators = Symbol('cookieAllocators');
27
27
  const _deviceAllocators = Symbol('deviceAllocators');
28
28
  const _createDeviceAllocator = Symbol('createDeviceAllocator');
29
+ const _createDeviceAllocatorInstance = Symbol('createDeviceAllocatorInstance');
29
30
  //#endregion
30
31
 
31
32
  class DetoxPrimaryContext extends DetoxContext {
@@ -272,29 +273,41 @@ class DetoxPrimaryContext extends DetoxContext {
272
273
  /** @param {Detox.DetoxDeviceConfig} deviceConfig */
273
274
  [_createDeviceAllocator] = async (deviceConfig) => {
274
275
  const deviceType = deviceConfig.type;
276
+ const deviceAllocator = this[_createDeviceAllocatorInstance](deviceConfig);
277
+
278
+ try {
279
+ await deviceAllocator.init();
280
+ } catch (e) {
281
+ try {
282
+ delete this[_deviceAllocators][deviceType];
283
+ await deviceAllocator.cleanup();
284
+ } catch (e2) {
285
+ this[symbols.logger].error({ cat: 'device', err: e2 }, `Failed to cleanup the device allocation driver for ${deviceType} after a failed initialization`);
286
+ }
287
+
288
+ throw e;
289
+ }
290
+
291
+ return this[_deviceAllocators][deviceType];
292
+ };
293
+
294
+ /**
295
+ * @param {Detox.DetoxDeviceConfig} deviceConfig
296
+ * @returns { DeviceAllocator }
297
+ */
298
+ [_createDeviceAllocatorInstance] = (deviceConfig) => {
299
+ const deviceType = deviceConfig.type;
300
+
275
301
  if (!this[_deviceAllocators][deviceType]) {
276
302
  const environmentFactory = require('../environmentFactory');
277
303
  const { deviceAllocatorFactory } = environmentFactory.createFactories(deviceConfig);
278
304
  const { detoxConfig } = this[$sessionState];
279
- const deviceAllocator = deviceAllocatorFactory.createDeviceAllocator({
305
+
306
+ this[_deviceAllocators][deviceType] = deviceAllocatorFactory.createDeviceAllocator({
280
307
  detoxConfig,
281
- detoxSession: this[$sessionState],
308
+ detoxSession: this[$sessionState]
282
309
  });
283
-
284
- try {
285
- await deviceAllocator.init();
286
- this[_deviceAllocators][deviceType] = deviceAllocator;
287
- } catch (e) {
288
- try {
289
- await deviceAllocator.cleanup();
290
- } catch (e2) {
291
- this[symbols.logger].error({ cat: 'device', err: e2 }, `Failed to cleanup the device allocation driver for ${deviceType} after a failed initialization`);
292
- }
293
-
294
- throw e;
295
- }
296
310
  }
297
-
298
311
  return this[_deviceAllocators][deviceType];
299
312
  };
300
313
 
@@ -1 +0,0 @@
1
- 619b3e428e498fda0870620ce2d3c5c4
@@ -1 +0,0 @@
1
- 017905bcc89ab25f26a51c0d724680d83416b2e7
@@ -1 +0,0 @@
1
- d88cd6cd15872d9f04c77c23c1c2fd4474787eb0f25333f08452c2fb4de8c74b
@@ -1 +0,0 @@
1
- 2757b909c56c219bdb8fcb4b629523bcad05556234bf89ae5953b21e62c3a9676f45ad36ed3eb4b8a875a891406664c55a7102ff8933a8c4dcb8eecf3f2723a1
@@ -1 +0,0 @@
1
- d6caeb72643d8530ef1b332e98566350
@@ -1 +0,0 @@
1
- 13c3cb0d37f92bcd283ef5344897c975396b93d0
@@ -1 +0,0 @@
1
- 348ea5305bc6ebd7658d9966eee32c073f268adf33e802a12469c2dad0c136bf
@@ -1 +0,0 @@
1
- cf5032396a95a97fd964672c188382d46fd16195e5708a6b21f85322a678595d8923f7dac31479f05e1121af4fcef0734c22ceabdf22afd54db9213ccb70a9dc
@@ -1 +0,0 @@
1
- 9e833c26f83f840d110b10f49e930040
@@ -1 +0,0 @@
1
- 47fa17817e76b9388404db2f8af6adf908faa1cb
@@ -1 +0,0 @@
1
- 4ad337ac65a1942992b394b1bacdbec38f2415032903af63d6dfbe7bf8539233
@@ -1 +0,0 @@
1
- 5d9ddd3356f022e5a7a341caddb73a9a2deb69f36886824bda7e7f48f104ad94f7950924101dbd6248a7afd4cb03a8da2ae5a9a4b2f1cf498cae53f306a68ccf
@@ -1 +0,0 @@
1
- c0fb34a4b4869fb29fe7c29e071a8905
@@ -1 +0,0 @@
1
- 01fb530a4a232d4ddd2428bc594a69de25963637
@@ -1 +0,0 @@
1
- 6cb3e5c70e00b6dc5f102587810da45a304a2b61dc843161b00a9022cdae27de
@@ -1 +0,0 @@
1
- d6a1b08152dc9a8c0f5defe3251ed611cd3fd2648702b54d12e53f00d3a8a1315897466eb02e31350379002eb74e8bbdd91539a91b18c5bfffa4a5fa8db78719