detox 20.24.0 → 20.25.0

Sign up to get free protection for your applications and to get access to all the features.
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