detox 20.1.2 → 20.1.3-smoke.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2-javadoc.jar → 20.1.3-smoke.0/detox-20.1.3-smoke.0-javadoc.jar} +0 -0
  2. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-javadoc.jar.md5 +1 -0
  3. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-javadoc.jar.sha1 +1 -0
  4. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-javadoc.jar.sha256 +1 -0
  5. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-javadoc.jar.sha512 +1 -0
  6. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2-sources.jar → 20.1.3-smoke.0/detox-20.1.3-smoke.0-sources.jar} +0 -0
  7. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-sources.jar.md5 +1 -0
  8. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-sources.jar.sha1 +1 -0
  9. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-sources.jar.sha256 +1 -0
  10. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0-sources.jar.sha512 +1 -0
  11. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2.aar → 20.1.3-smoke.0/detox-20.1.3-smoke.0.aar} +0 -0
  12. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2.aar.md5 → 20.1.3-smoke.0/detox-20.1.3-smoke.0.aar.md5} +0 -0
  13. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2.aar.sha1 → 20.1.3-smoke.0/detox-20.1.3-smoke.0.aar.sha1} +0 -0
  14. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2.aar.sha256 → 20.1.3-smoke.0/detox-20.1.3-smoke.0.aar.sha256} +0 -0
  15. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2.aar.sha512 → 20.1.3-smoke.0/detox-20.1.3-smoke.0.aar.sha512} +0 -0
  16. package/Detox-android/com/wix/detox/{20.1.2/detox-20.1.2.pom → 20.1.3-smoke.0/detox-20.1.3-smoke.0.pom} +1 -1
  17. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0.pom.md5 +1 -0
  18. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0.pom.sha1 +1 -0
  19. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0.pom.sha256 +1 -0
  20. package/Detox-android/com/wix/detox/20.1.3-smoke.0/detox-20.1.3-smoke.0.pom.sha512 +1 -0
  21. package/Detox-android/com/wix/detox/maven-metadata.xml +4 -4
  22. package/Detox-android/com/wix/detox/maven-metadata.xml.md5 +1 -1
  23. package/Detox-android/com/wix/detox/maven-metadata.xml.sha1 +1 -1
  24. package/Detox-android/com/wix/detox/maven-metadata.xml.sha256 +1 -1
  25. package/Detox-android/com/wix/detox/maven-metadata.xml.sha512 +1 -1
  26. package/Detox-ios-src.tbz +0 -0
  27. package/Detox-ios.tbz +0 -0
  28. package/local-cli/cli.js +4 -3
  29. package/local-cli/testCommand/TestRunnerCommand.js +2 -1
  30. package/local-cli/testCommand/TestRunnerError.js +0 -4
  31. package/local-cli/utils/cliErrorHandling.js +15 -0
  32. package/package.json +3 -2
  33. package/src/artifacts/utils/temporaryPath.js +2 -4
  34. package/src/devices/runtime/drivers/android/genycloud/GenyCloudDriver.js +11 -1
  35. package/src/devices/runtime/factories/android.js +1 -0
  36. package/src/logger/utils/BunyanLogger.js +5 -16
  37. package/src/logger/utils/streams/DetoxJSONLParser.js +1 -1
  38. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-javadoc.jar.md5 +0 -1
  39. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-javadoc.jar.sha1 +0 -1
  40. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-javadoc.jar.sha256 +0 -1
  41. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-javadoc.jar.sha512 +0 -1
  42. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-sources.jar.md5 +0 -1
  43. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-sources.jar.sha1 +0 -1
  44. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-sources.jar.sha256 +0 -1
  45. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2-sources.jar.sha512 +0 -1
  46. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2.pom.md5 +0 -1
  47. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2.pom.sha1 +0 -1
  48. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2.pom.sha256 +0 -1
  49. package/Detox-android/com/wix/detox/20.1.2/detox-20.1.2.pom.sha512 +0 -1
@@ -0,0 +1 @@
1
+ 5ea178d37800ac85657519326c612490
@@ -0,0 +1 @@
1
+ 514390d5c32fd969557547ee5d671a353c127b7e
@@ -0,0 +1 @@
1
+ 963693e1366f136d7b1d560831c04140d4eb45d3ce66e6250fa94564ee0e6898
@@ -0,0 +1 @@
1
+ 443148418bb248bcfc7b4f7dbc598c49e76238ca3d1a594c3d6faa1582d51152a3fcda51150f5748b58b8f7b1eebe30c44e6373b4bd34ed2bd92bb313f36df76
@@ -0,0 +1 @@
1
+ f1f70446a009ef210c4f845bf91536f6
@@ -0,0 +1 @@
1
+ 35501e58eef68c0dc26c62419332872f5b8560e5
@@ -0,0 +1 @@
1
+ a6763332834870304f092606c17fc9a3e6e9c48e7b249b0eddb2dad559193a96
@@ -0,0 +1 @@
1
+ 366d1835c72e688bb0c3e11343813724c5fdec5123ebc54a82a28a49ceddae04a3091ccc3430c210f7743fc6cb7d661bc7f1bc9b2813257b6fa0e3c97ea2ef9d
@@ -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.1.2</version>
6
+ <version>20.1.3-smoke.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
+ 576fdc79c38e30ef9865ebd14804f7d1
@@ -0,0 +1 @@
1
+ 14372ce8c7b2b1a2a0e6ce3eee61470ee23e3efb
@@ -0,0 +1 @@
1
+ 867e0414f1e99ca2bac00e68677bce8e392a3affe74ca9ee64acae9653cd9316
@@ -0,0 +1 @@
1
+ 63cd497446b3521940236c4d10074cffd5a29de519400615c7e55d6ba05671452c2c1d8b3bc4c59d71ca5800010df98294286deb1fff5c46b89ffd18af3d61d0
@@ -3,11 +3,11 @@
3
3
  <groupId>com.wix</groupId>
4
4
  <artifactId>detox</artifactId>
5
5
  <versioning>
6
- <latest>20.1.2</latest>
7
- <release>20.1.2</release>
6
+ <latest>20.1.3-smoke.0</latest>
7
+ <release>20.1.3-smoke.0</release>
8
8
  <versions>
9
- <version>20.1.2</version>
9
+ <version>20.1.3-smoke.0</version>
10
10
  </versions>
11
- <lastUpdated>20230118072349</lastUpdated>
11
+ <lastUpdated>20230127111808</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- c901a074fb859d5cfe367d9e9f7f6072
1
+ 3c5a2645c7b35c9049858f996e6bc26b
@@ -1 +1 @@
1
- 1ea7690b056eaa56081dc62901ef7d7f4f38d0bb
1
+ 741c4b63d991448be749164039fb47baa2e9ed2d
@@ -1 +1 @@
1
- 6bfffbf80107650b031d233e898a3d432ff625720123f99feee966e11ee0e543
1
+ c4c3d49bc030860d983a2f6efd6d757ee79764664fb26eeae9b08a0bbbbbf622
@@ -1 +1 @@
1
- 2a33e6bad05e8adbbceb9479d6eea6a54663e25d5c9b72be1fe2503b6952976c2a6069bdf6336a4d45fe021d2711626d9cceb1bbf6932e03a86d04e349857875
1
+ 130871034fac45eaf284a931075b88a8baff8d674a534c1af85db03508e5c57af4fe7d656672cf8b534852171d743ea3a4793d0ecf8db1dc93ed0f8401d400c8
package/Detox-ios-src.tbz CHANGED
Binary file
package/Detox-ios.tbz CHANGED
Binary file
package/local-cli/cli.js CHANGED
@@ -7,6 +7,8 @@ const yargs = require('yargs');
7
7
  const logger = require('../internals').log.child({ cat: 'cli' });
8
8
  const DetoxError = require('../src/errors/DetoxError');
9
9
 
10
+ const { isErrorAlreadyLogged } = require('./utils/cliErrorHandling');
11
+
10
12
  yargs
11
13
  .scriptName('detox')
12
14
  .parserConfiguration({
@@ -28,9 +30,8 @@ yargs
28
30
  .wrap(yargs.terminalWidth() * 0.9)
29
31
  .fail(function(msg, err, program) {
30
32
  if (err) {
31
- const message = DetoxError.format(err);
32
- if (message) {
33
- logger.error(message);
33
+ if (!isErrorAlreadyLogged(err)) {
34
+ logger.error(DetoxError.format(err));
34
35
  process.stderr.write('\n');
35
36
  }
36
37
 
@@ -9,6 +9,7 @@ const log = detox.log.child({ cat: ['lifecycle', 'cli'] });
9
9
  const { printEnvironmentVariables, prependNodeModulesBinToPATH } = require('../../src/utils/envUtils');
10
10
  const { toSimplePath } = require('../../src/utils/pathUtils');
11
11
  const { escapeSpaces, useForwardSlashes } = require('../../src/utils/shellUtils');
12
+ const { markErrorAsLogged } = require('../utils/cliErrorHandling');
12
13
 
13
14
  const TestRunnerError = require('./TestRunnerError');
14
15
 
@@ -142,7 +143,7 @@ class TestRunnerCommand {
142
143
  signal,
143
144
  });
144
145
  log.error.end({ success: false, code, signal }, error.message);
145
- reject(error);
146
+ reject(markErrorAsLogged(error));
146
147
  }
147
148
  });
148
149
  });
@@ -8,10 +8,6 @@ class TestRunnerError extends DetoxError {
8
8
  this.signal = signal;
9
9
  this.name = 'TestRunnerError';
10
10
  }
11
-
12
- format() {
13
- return '';
14
- }
15
11
  }
16
12
 
17
13
  module.exports = TestRunnerError;
@@ -0,0 +1,15 @@
1
+ const loggedErrors = new WeakSet();
2
+
3
+ function markErrorAsLogged(error) {
4
+ loggedErrors.add(error);
5
+ return error;
6
+ }
7
+
8
+ function isErrorAlreadyLogged(error) {
9
+ return loggedErrors.has(error);
10
+ }
11
+
12
+ module.exports = {
13
+ markErrorAsLogged,
14
+ isErrorAlreadyLogged,
15
+ };
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.1.2",
4
+ "version": "20.1.3-smoke.0",
5
5
  "bin": {
6
6
  "detox": "local-cli/cli.js"
7
7
  },
@@ -146,6 +146,7 @@
146
146
  "src/devices/common/drivers/ios/tools",
147
147
  "src/devices/runtime/drivers/android/AndroidDriver.js",
148
148
  "src/devices/runtime/drivers/android/emulator/EmulatorDriver.js",
149
+ "src/devices/runtime/drivers/android/genycloud/GenyCloudDriver.js",
149
150
  "src/devices/runtime/drivers/DeviceDriverBase.js",
150
151
  "src/devices/runtime/drivers/ios",
151
152
  "src/devices/runtime/factories",
@@ -199,5 +200,5 @@
199
200
  }
200
201
  }
201
202
  },
202
- "gitHead": "92824f79022d8d0048f5b560b7115da2c97b0737"
203
+ "gitHead": "34254aaf8d23f6436a7a287ae65339b0903dfeb0"
203
204
  }
@@ -2,16 +2,14 @@ const path = require('path');
2
2
  const { promisify } = require('util');
3
3
 
4
4
  const glob = require('glob');
5
+ const _ = require('lodash');
5
6
  const tempfile = require('tempfile');
6
7
 
7
8
  const { useForwardSlashes } = require('../../utils/shellUtils');
8
9
 
9
10
  const globSync = glob.sync;
10
11
  const globAsync = promisify(glob);
11
-
12
- function getRoot() {
13
- return path.dirname(tempfile());
14
- }
12
+ const getRoot = _.once(() => path.dirname(tempfile()));
15
13
 
16
14
  function createGlobber(ext) {
17
15
  const fullExt = `.detox.${ext}`;
@@ -9,6 +9,7 @@ const AndroidDriver = require('../AndroidDriver');
9
9
  /**
10
10
  * @typedef GenycloudDriverProps
11
11
  * @property instance { GenyInstance } The DTO associated with the cloud instance
12
+ * @property forceAdbInstall { Boolean }
12
13
  */
13
14
 
14
15
  class GenyCloudDriver extends AndroidDriver {
@@ -16,9 +17,10 @@ class GenyCloudDriver extends AndroidDriver {
16
17
  * @param deps { GenycloudDriverDeps }
17
18
  * @param props { GenycloudDriverProps }
18
19
  */
19
- constructor(deps, { instance }) {
20
+ constructor(deps, { instance, forceAdbInstall }) {
20
21
  super(deps, { adbName: instance.adbName });
21
22
  this.instance = instance;
23
+ this._forceAdbInstall = forceAdbInstall;
22
24
  }
23
25
 
24
26
  getDeviceName() {
@@ -30,6 +32,14 @@ class GenyCloudDriver extends AndroidDriver {
30
32
  }
31
33
 
32
34
  async _installAppBinaries(appBinaryPath, testBinaryPath) {
35
+ if (this._forceAdbInstall) {
36
+ await super._installAppBinaries(appBinaryPath, testBinaryPath);
37
+ } else {
38
+ await this.__installAppBinaries(appBinaryPath, testBinaryPath);
39
+ }
40
+ }
41
+
42
+ async __installAppBinaries(appBinaryPath, testBinaryPath) {
33
43
  await this.appInstallHelper.install(this.adbName, appBinaryPath, testBinaryPath);
34
44
  }
35
45
  }
@@ -56,6 +56,7 @@ class Genycloud extends RuntimeDriverFactoryAndroid {
56
56
  _createDriver(deviceCookie, deps, configs) {
57
57
  const props = {
58
58
  instance: deviceCookie.instance,
59
+ forceAdbInstall: configs.deviceConfig.forceAdbInstall,
59
60
  };
60
61
 
61
62
  const { GenycloudRuntimeDriver } = require('../drivers');
@@ -1,4 +1,5 @@
1
1
  const { PassThrough } = require('stream');
2
+ const { promisify } = require('util');
2
3
 
3
4
  const bunyan = require('bunyan');
4
5
  const bds = require('bunyan-debug-stream');
@@ -74,12 +75,14 @@ class BunyanLogger {
74
75
  }
75
76
 
76
77
  async closeFileStreams() {
77
- const { _closeStream } = BunyanLogger;
78
78
  const internalBunyanStreams = this._bunyan['streams'];
79
79
  const openFileStreams = _.filter(internalBunyanStreams, this._isOpenFileStream);
80
80
  _.remove(internalBunyanStreams, openFileStreams);
81
81
 
82
- await Promise.all(openFileStreams.map(_closeStream));
82
+ await Promise.all(openFileStreams.map(bunyanStream => {
83
+ const stream = bunyanStream.stream;
84
+ return promisify(stream.end.bind(stream))();
85
+ }));
83
86
  }
84
87
 
85
88
  /** @private */
@@ -97,20 +100,6 @@ class BunyanLogger {
97
100
  return stream.fd > 2 && !stream.closed;
98
101
  }
99
102
  };
100
-
101
- /** @private */
102
- static _closeStream(bunyanStream) {
103
- return new Promise((resolve, reject) => {
104
- bunyanStream.stream.end((err) => {
105
- /* istanbul ignore next */
106
- if (err) {
107
- reject(err);
108
- } else {
109
- resolve();
110
- }
111
- });
112
- });
113
- }
114
103
  }
115
104
 
116
105
  module.exports = BunyanLogger;
@@ -14,7 +14,7 @@ class DetoxJSONLParser {
14
14
  .on('error', (err) => {
15
15
  /* istanbul ignore else */
16
16
  if (err instanceof SyntaxError) {
17
- log.debug({ err });
17
+ log.debug({ err }, 'Failed to parse log line:');
18
18
  readable.end();
19
19
  } else {
20
20
  readable.emit('error', err);
@@ -1 +0,0 @@
1
- 66a12b51d39c0dc37d8237459002fa80
@@ -1 +0,0 @@
1
- a6ce0a5378be7d5f0bd050e4ee918d9b63e9fc6f
@@ -1 +0,0 @@
1
- aead1f291b379b31f6bea79a173d54e8c7f4e2765989a3f40e7aa6246370c01c
@@ -1 +0,0 @@
1
- fddf79d6f4258ffd96cd24ec6eac9323df38fbcfe72aed5aeb9ea5c21982bfa96e732c2c8a9e2c6b6d11e6b1d9b2fa379978344829b04f46ebd42afb91d6973f
@@ -1 +0,0 @@
1
- 2bf2d6bb4211ecd29fe92218f374356d
@@ -1 +0,0 @@
1
- ab2f58d97f18c07fda612358a4acd0c55559b54c
@@ -1 +0,0 @@
1
- 269663213a371ff333345cc4a2042eacf18a3f8955003b45feb10484df48cc95
@@ -1 +0,0 @@
1
- 34b61213d9da6f33dcc73892d2a07d8e02ceb2addcc07dfa2c396e30723faa24c804df26f465d7900f1e4afcf8a182bf00fe46be99065b7241cbfff6998268ae
@@ -1 +0,0 @@
1
- 588ca5b917e41b9b0532532c77717020
@@ -1 +0,0 @@
1
- 84c09fdf4cc86ae4116c92f13a72e848d47d689d
@@ -1 +0,0 @@
1
- 0a7cd18ab62c4e460a174fb3a74729597a1876c04939cd3c72e7828133690ee9
@@ -1 +0,0 @@
1
- b7df21adb125e0fa524dad24daf37dcc53dd88a52d5bddf5e1720c13683965d7d7ca9d7d89eb6e82e181a665400ad0a23f47b2366ad05e0f85e93c9e7786f586