detox 20.0.11-prerelease.0 → 20.0.13-is-hittable-over-master.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.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-javadoc.jar} +0 -0
  2. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-javadoc.jar.md5 +1 -0
  3. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-javadoc.jar.sha1 +1 -0
  4. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-javadoc.jar.sha256 +1 -0
  5. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-javadoc.jar.sha512 +1 -0
  6. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-sources.jar} +0 -0
  7. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-sources.jar.md5 +1 -0
  8. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-sources.jar.sha1 +1 -0
  9. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-sources.jar.sha256 +1 -0
  10. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0-sources.jar.sha512 +1 -0
  11. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.aar} +0 -0
  12. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.md5 → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.aar.md5} +0 -0
  13. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.sha1 → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.aar.sha1} +0 -0
  14. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.sha256 → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.aar.sha256} +0 -0
  15. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.sha512 → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.aar.sha512} +0 -0
  16. package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom → 20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.pom} +1 -1
  17. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.pom.md5 +1 -0
  18. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.pom.sha1 +1 -0
  19. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.0.pom.sha256 +1 -0
  20. package/Detox-android/com/wix/detox/20.0.13-is-hittable-over-master.0/detox-20.0.13-is-hittable-over-master.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/index.d.ts +18 -2
  29. package/internals.d.ts +36 -14
  30. package/local-cli/cli.js +7 -5
  31. package/local-cli/init.js +1 -1
  32. package/local-cli/reset-lock-file.js +16 -0
  33. package/local-cli/test.test.js +58 -14
  34. package/local-cli/testCommand/TestRunnerCommand.js +10 -3
  35. package/package.json +2 -2
  36. package/runners/jest/reporters/DetoxReporter.js +22 -2
  37. package/runners/jest/testEnvironment/index.js +83 -82
  38. package/runners/jest/testEnvironment/listeners/DetoxCoreListener.js +9 -24
  39. package/runners/jest/testEnvironment/listeners/DetoxPlatformFilterListener.js +1 -1
  40. package/src/configuration/composeRunnerConfig.js +3 -1
  41. package/src/devices/allocation/drivers/android/emulator/AVDValidator.js +4 -4
  42. package/src/devices/allocation/drivers/android/emulator/EmulatorAllocDriver.js +1 -1
  43. package/src/ipc/IPCClient.js +9 -5
  44. package/src/ipc/IPCServer.js +17 -13
  45. package/src/ipc/SessionState.js +2 -4
  46. package/src/realms/DetoxContext.js +2 -2
  47. package/src/realms/DetoxInternalsFacade.js +1 -1
  48. package/src/realms/DetoxPrimaryContext.js +6 -8
  49. package/src/realms/DetoxSecondaryContext.js +2 -2
  50. package/src/symbols.js +2 -2
  51. package/src/utils/Timer.js +55 -38
  52. package/src/utils/errorUtils.js +20 -0
  53. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.md5 +0 -1
  54. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha1 +0 -1
  55. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha256 +0 -1
  56. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha512 +0 -1
  57. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.md5 +0 -1
  58. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha1 +0 -1
  59. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha256 +0 -1
  60. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha512 +0 -1
  61. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.md5 +0 -1
  62. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha1 +0 -1
  63. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha256 +0 -1
  64. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha512 +0 -1
@@ -1,65 +1,82 @@
1
- // @ts-nocheck
2
- const DetoxRuntimeError = require('../errors/DetoxRuntimeError');
1
+ const { DetoxRuntimeError, DetoxInternalError } = require('../errors');
3
2
 
4
3
  const Deferred = require('./Deferred');
5
4
 
6
5
  class Timer {
6
+ constructor() {
7
+ /** @private */
8
+ this._eta = NaN;
9
+ /** @private */
10
+ this._timeout = NaN;
11
+ /** @type {NodeJS.Timer | null} */
12
+ this._timeoutHandle = null;
13
+ /** @type {Deferred | null} */
14
+ this._timeoutDeferred = null;
15
+ }
16
+
17
+ clear() {
18
+ if (this._timeoutHandle) {
19
+ clearTimeout(this._timeoutHandle);
20
+ this._timeoutHandle = null;
21
+ }
22
+
23
+ this._eta = NaN;
24
+ this._timeout = NaN;
25
+ this._timeoutDeferred = null;
26
+ }
27
+
28
+ get expired() {
29
+ return this._timeoutDeferred ? this._timeoutDeferred.isResolved() : false;
30
+ }
31
+
7
32
  /**
8
- * @param {string} description - gives more context for thrown errors
9
33
  * @param {number} timeout - maximal allowed duration in milliseconds
10
34
  */
11
- constructor({ description, timeout }) {
12
- /** @private */
35
+ schedule(timeout) {
36
+ this.clear();
37
+
38
+ this._eta = Date.now() + timeout;
13
39
  this._timeout = timeout;
14
- /** @public */
15
- this.description = description;
40
+ this._timeoutDeferred = new Deferred();
41
+ this._timeoutHandle = setTimeout(() => {
42
+ this._timeoutDeferred.resolve();
43
+ }, this._timeout);
16
44
 
17
- this._schedule();
45
+ return this;
18
46
  }
19
47
 
20
- _schedule() {
21
- this._createdAt = Date.now();
22
- this._timeoutDeferred = new Deferred();
48
+ extend(ms) {
49
+ if (this.expired) {
50
+ return this.schedule(ms);
51
+ }
52
+
53
+ clearTimeout(this._timeoutHandle);
54
+ this._eta += ms;
55
+ this._timeout += ms;
23
56
  this._timeoutHandle = setTimeout(() => {
24
57
  this._timeoutDeferred.resolve();
25
- }, this._timeout);
58
+ }, this._eta - Date.now());
26
59
  }
27
60
 
28
- async run(action) {
61
+ async run(description, action) {
62
+ if (!this._timeoutDeferred) {
63
+ throw new DetoxInternalError('Cannot run a timer action from an uninitialized timer');
64
+ }
65
+
29
66
  const error = new DetoxRuntimeError({
30
- message: `Exceeded timeout of ${this._timeout}ms while ${this.description}`,
67
+ message: `Exceeded timeout of ${this._timeout}ms while ${description}`,
31
68
  noStack: true,
32
69
  });
33
70
 
71
+ if (this.expired) {
72
+ throw error;
73
+ }
74
+
34
75
  return Promise.race([
35
76
  this._timeoutDeferred.promise.then(() => { throw error; }),
36
77
  Promise.resolve().then(action),
37
78
  ]);
38
79
  }
39
-
40
- dispose() {
41
- clearTimeout(this._timeoutHandle);
42
- }
43
-
44
- reset(extraDelayMs) {
45
- this._timeout = extraDelayMs;
46
-
47
- if (this._timeoutDeferred.status !== Deferred.PENDING) {
48
- this._schedule();
49
- } else {
50
- clearTimeout(this._timeoutHandle);
51
- this._timeoutHandle = setTimeout(() => this._timeoutDeferred.resolve(), extraDelayMs);
52
- }
53
- }
54
-
55
- static async run({ description, timeout, fn }) {
56
- const timer = new Timer({ description, timeout });
57
- try {
58
- await timer.run(fn);
59
- } finally {
60
- timer.dispose();
61
- }
62
- }
63
80
  }
64
81
 
65
82
  module.exports = Timer;
@@ -1,4 +1,6 @@
1
1
  const { isError } = require('lodash');
2
+ const { deserializeError, serializeError } = require('serialize-error');
3
+
2
4
  const CLEAN_AT = /\n\s*at [\s\S]*/m;
3
5
 
4
6
  function filterErrorStack(error, predicate) {
@@ -38,9 +40,27 @@ function asError(error) {
38
40
  return isError(error) ? error : new Error(error);
39
41
  }
40
42
 
43
+ function serializeObjectWithError(obj, errorKey) {
44
+ if (obj[errorKey]) {
45
+ return { ...obj, [errorKey]: serializeError(obj[errorKey]) };
46
+ }
47
+
48
+ return obj;
49
+ }
50
+
51
+ function deserializeObjectWithError(obj, errorKey) {
52
+ if (typeof obj[errorKey] === 'object' && !(obj[errorKey] instanceof Error)) {
53
+ return { ...obj, [errorKey]: deserializeError(obj[errorKey]) };
54
+ }
55
+
56
+ return obj;
57
+ }
58
+
41
59
  module.exports = {
42
60
  asError,
43
61
  replaceErrorStack,
44
62
  filterErrorStack,
45
63
  createErrorWithUserStack,
64
+ serializeObjectWithError,
65
+ deserializeObjectWithError,
46
66
  };
@@ -1 +0,0 @@
1
- 3ac292deb3e60c7f80bb4e138e61decdacb32673
@@ -1 +0,0 @@
1
- 5d4183bf7d91e2375e527f7886a374bcdc227328e09fbe8c5705c82750cb5a80
@@ -1 +0,0 @@
1
- b149751c26413a63ea98c69ff3a4cb19a4d449b4b626e277ecdd1508b725ef5179dbcbb68aca4c4427651de00ebdf30efb517ea981302eb50ec4aed6e26c432f
@@ -1 +0,0 @@
1
- 35e4d7a489d2b9ce8bc3298d4e05ace381938968
@@ -1 +0,0 @@
1
- ba003c4e1afb9667e62a7d1e73db455775e1c082d6f3780d4ed172844e1dcec3
@@ -1 +0,0 @@
1
- a8254a5574422d06bbe1b256abf87d111b2fb56d82a1e82dd9a827407e95321a81279eaeaa79cc68e985d313f547e70b60251c374d784195d05d90c042f6e93a
@@ -1 +0,0 @@
1
- e1de6a89002fc682019853172c69830c
@@ -1 +0,0 @@
1
- 489bc3e987d66596a3d04353e50a9b7528a2ca8f
@@ -1 +0,0 @@
1
- 40f07b6d97cc2f6143e7bf5456fc0070af5ee9316a8585c4abdca7d796409d71
@@ -1 +0,0 @@
1
- 9eae7ac091f209b9ddd0282e6e8eb2dcef416c06d2906857f7d065276787c56cd7a14e19883c710f934005f5831890c33a66218dabb5dbfe6a9143089b6a3462