detox 20.0.11-prerelease.0 → 20.1.0-next-is-hittable-check.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.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-javadoc.jar} +0 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-javadoc.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-javadoc.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-javadoc.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-javadoc.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-sources.jar} +0 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.aar} +0 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.md5 → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.aar.md5} +0 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.sha1 → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.aar.sha1} +0 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.sha256 → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.aar.sha256} +0 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.aar.sha512 → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.aar.sha512} +0 -0
- package/Detox-android/com/wix/detox/{20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom → 20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.pom} +1 -1
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.pom.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.0.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.0-next-is-hittable-check.0/detox-20.1.0-next-is-hittable-check.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/android/detox/proguard-rules-app.pro +4 -2
- package/index.d.ts +22 -6
- package/internals.d.ts +106 -28
- package/local-cli/cli.js +7 -5
- package/local-cli/init.js +1 -1
- package/local-cli/reset-lock-file.js +16 -0
- package/local-cli/test.js +4 -4
- package/local-cli/test.test.js +85 -37
- package/local-cli/testCommand/TestRunnerCommand.js +45 -30
- package/local-cli/utils/jestInternals.js +4 -1
- package/package.json +3 -3
- package/runners/jest/reporters/DetoxReporter.js +22 -2
- package/runners/jest/testEnvironment/index.js +83 -82
- package/runners/jest/testEnvironment/listeners/DetoxCoreListener.js +9 -24
- package/runners/jest/testEnvironment/listeners/DetoxPlatformFilterListener.js +1 -1
- package/src/DetoxWorker.js +0 -6
- package/src/artifacts/ArtifactsManager.js +0 -18
- package/src/configuration/composeLoggerConfig.js +2 -2
- package/src/configuration/composeRunnerConfig.js +7 -4
- package/src/devices/allocation/drivers/android/emulator/AVDValidator.js +4 -4
- package/src/devices/allocation/drivers/android/emulator/EmulatorAllocDriver.js +1 -1
- package/src/ipc/IPCClient.js +9 -5
- package/src/ipc/IPCServer.js +17 -13
- package/src/ipc/SessionState.js +3 -5
- package/src/logger/DetoxLogger.js +4 -6
- package/src/realms/DetoxContext.js +2 -8
- package/src/realms/DetoxInternalsFacade.js +1 -1
- package/src/realms/DetoxPrimaryContext.js +6 -8
- package/src/realms/DetoxSecondaryContext.js +2 -2
- package/src/symbols.js +2 -14
- package/src/utils/Timer.js +55 -38
- package/src/utils/errorUtils.js +20 -0
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha512 +0 -1
@@ -46,9 +46,9 @@ class DetoxPrimaryContext extends DetoxContext {
|
|
46
46
|
}
|
47
47
|
|
48
48
|
//#region Internal members
|
49
|
-
async [symbols.
|
49
|
+
async [symbols.reportTestResults](testResults) {
|
50
50
|
if (this[_ipcServer]) {
|
51
|
-
this[_ipcServer].
|
51
|
+
this[_ipcServer].onReportTestResults({ testResults });
|
52
52
|
}
|
53
53
|
}
|
54
54
|
|
@@ -236,15 +236,14 @@ class DetoxPrimaryContext extends DetoxContext {
|
|
236
236
|
const { rootDir } = this[symbols.config].artifacts;
|
237
237
|
|
238
238
|
await fs.mkdirp(rootDir);
|
239
|
-
const [out1Stream, out2Stream
|
239
|
+
const [out1Stream, out2Stream] = ['detox.log', 'detox.trace.json']
|
240
240
|
.map((filename) => fs.createWriteStream(path.join(rootDir, filename)));
|
241
241
|
|
242
242
|
const mergedStream = streamUtils.uniteSessionLogs(sessionId);
|
243
243
|
|
244
244
|
await Promise.all([
|
245
|
-
pipe(mergedStream, streamUtils.
|
246
|
-
pipe(mergedStream, streamUtils.
|
247
|
-
pipe(mergedStream, streamUtils.chromeTraceStream(), streamUtils.writeJSON(), out3Stream),
|
245
|
+
pipe(mergedStream, streamUtils.debugStream(this[symbols.logger].config.options), out1Stream),
|
246
|
+
pipe(mergedStream, streamUtils.chromeTraceStream(), streamUtils.writeJSON(), out2Stream),
|
248
247
|
]);
|
249
248
|
}
|
250
249
|
|
@@ -286,8 +285,7 @@ class DetoxPrimaryContext extends DetoxContext {
|
|
286
285
|
return true;
|
287
286
|
}
|
288
287
|
|
289
|
-
|
290
|
-
return failedTestFiles.length + testFilesToRetry.length > 0;
|
288
|
+
return this[$sessionState].testResults.some(r => !r.success);
|
291
289
|
}
|
292
290
|
|
293
291
|
async[_resetLockFile]() {
|
@@ -29,9 +29,9 @@ class DetoxSecondaryContext extends DetoxContext {
|
|
29
29
|
}
|
30
30
|
|
31
31
|
//#region Internal members
|
32
|
-
async [symbols.
|
32
|
+
async [symbols.reportTestResults](testResults) {
|
33
33
|
if (this[_ipcClient]) {
|
34
|
-
await this[_ipcClient].
|
34
|
+
await this[_ipcClient].reportTestResults(testResults);
|
35
35
|
} else {
|
36
36
|
throw new DetoxInternalError('Detected an attempt to report failed tests using a non-initialized context.');
|
37
37
|
}
|
package/src/symbols.js
CHANGED
@@ -7,18 +7,12 @@
|
|
7
7
|
* readonly installWorker: unique symbol;
|
8
8
|
* readonly logger: unique symbol;
|
9
9
|
* readonly onHookFailure: unique symbol;
|
10
|
-
* readonly onHookStart: unique symbol;
|
11
|
-
* readonly onHookSuccess: unique symbol;
|
12
10
|
* readonly onRunDescribeFinish: unique symbol;
|
13
11
|
* readonly onRunDescribeStart: unique symbol;
|
14
|
-
* readonly onRunFinish: unique symbol;
|
15
|
-
* readonly onRunStart: unique symbol;
|
16
12
|
* readonly onTestDone: unique symbol;
|
17
13
|
* readonly onTestFnFailure: unique symbol;
|
18
|
-
* readonly onTestFnStart: unique symbol;
|
19
|
-
* readonly onTestFnSuccess: unique symbol;
|
20
14
|
* readonly onTestStart: unique symbol;
|
21
|
-
* readonly
|
15
|
+
* readonly reportTestResults: unique symbol;
|
22
16
|
* readonly resolveConfig: unique symbol;
|
23
17
|
* readonly session: unique symbol;
|
24
18
|
* readonly tracing: unique symbol;
|
@@ -28,22 +22,16 @@
|
|
28
22
|
*/
|
29
23
|
module.exports = {
|
30
24
|
//#region Lifecycle
|
31
|
-
onRunStart: Symbol('run_start'),
|
32
25
|
onRunDescribeStart: Symbol('run_describe_start'),
|
33
26
|
onTestStart: Symbol('test_start'),
|
34
|
-
onHookStart: Symbol('hook_start'),
|
35
27
|
onHookFailure: Symbol('hook_failure'),
|
36
|
-
onHookSuccess: Symbol('hook_success'),
|
37
|
-
onTestFnStart: Symbol('test_fn_start'),
|
38
28
|
onTestFnFailure: Symbol('test_fn_failure'),
|
39
|
-
onTestFnSuccess: Symbol('test_fn_success'),
|
40
29
|
onTestDone: Symbol('test_done'),
|
41
30
|
onRunDescribeFinish: Symbol('run_describe_finish'),
|
42
|
-
onRunFinish: Symbol('run_finish'),
|
43
31
|
//#endregion
|
44
32
|
|
45
33
|
//#region IPC
|
46
|
-
|
34
|
+
reportTestResults: Symbol('reportTestResults'),
|
47
35
|
//#endregion
|
48
36
|
|
49
37
|
//#region Main
|
package/src/utils/Timer.js
CHANGED
@@ -1,65 +1,82 @@
|
|
1
|
-
|
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
|
-
|
12
|
-
|
35
|
+
schedule(timeout) {
|
36
|
+
this.clear();
|
37
|
+
|
38
|
+
this._eta = Date.now() + timeout;
|
13
39
|
this._timeout = timeout;
|
14
|
-
|
15
|
-
this.
|
40
|
+
this._timeoutDeferred = new Deferred();
|
41
|
+
this._timeoutHandle = setTimeout(() => {
|
42
|
+
this._timeoutDeferred.resolve();
|
43
|
+
}, this._timeout);
|
16
44
|
|
17
|
-
this
|
45
|
+
return this;
|
18
46
|
}
|
19
47
|
|
20
|
-
|
21
|
-
this.
|
22
|
-
|
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.
|
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 ${
|
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;
|
package/src/utils/errorUtils.js
CHANGED
@@ -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
|
};
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.md5
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
47812b0a46970666a8ed5133588f83b9
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha1
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3ac292deb3e60c7f80bb4e138e61decdacb32673
|
@@ -1 +0,0 @@
|
|
1
|
-
5d4183bf7d91e2375e527f7886a374bcdc227328e09fbe8c5705c82750cb5a80
|
@@ -1 +0,0 @@
|
|
1
|
-
b149751c26413a63ea98c69ff3a4cb19a4d449b4b626e277ecdd1508b725ef5179dbcbb68aca4c4427651de00ebdf30efb517ea981302eb50ec4aed6e26c432f
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.md5
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
123907367c42d213beeb25fac892c1c8
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha1
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
35e4d7a489d2b9ce8bc3298d4e05ace381938968
|
@@ -1 +0,0 @@
|
|
1
|
-
ba003c4e1afb9667e62a7d1e73db455775e1c082d6f3780d4ed172844e1dcec3
|
@@ -1 +0,0 @@
|
|
1
|
-
a8254a5574422d06bbe1b256abf87d111b2fb56d82a1e82dd9a827407e95321a81279eaeaa79cc68e985d313f547e70b60251c374d784195d05d90c042f6e93a
|
@@ -1 +0,0 @@
|
|
1
|
-
e1de6a89002fc682019853172c69830c
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha1
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
489bc3e987d66596a3d04353e50a9b7528a2ca8f
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha256
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
40f07b6d97cc2f6143e7bf5456fc0070af5ee9316a8585c4abdca7d796409d71
|
package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha512
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
9eae7ac091f209b9ddd0282e6e8eb2dcef416c06d2906857f7d065276787c56cd7a14e19883c710f934005f5831890c33a66218dabb5dbfe6a9143089b6a3462
|