detox 20.0.11-prerelease.0 → 20.0.13-prerelease.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) 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-prerelease.0/detox-20.0.13-prerelease.0-javadoc.jar} +0 -0
  2. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0-javadoc.jar.md5 +1 -0
  3. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0-javadoc.jar.sha1 +1 -0
  4. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0-javadoc.jar.sha256 +1 -0
  5. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.0-sources.jar} +0 -0
  7. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0-sources.jar.md5 +1 -0
  8. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0-sources.jar.sha1 +1 -0
  9. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0-sources.jar.sha256 +1 -0
  10. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.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-prerelease.0/detox-20.0.13-prerelease.0.pom} +1 -1
  17. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0.pom.md5 +1 -0
  18. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0.pom.sha1 +1 -0
  19. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.0.pom.sha256 +1 -0
  20. package/Detox-android/com/wix/detox/20.0.13-prerelease.0/detox-20.0.13-prerelease.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/android/detox/proguard-rules-app.pro +4 -2
  29. package/index.d.ts +22 -6
  30. package/internals.d.ts +106 -28
  31. package/local-cli/cli.js +7 -5
  32. package/local-cli/init.js +1 -1
  33. package/local-cli/reset-lock-file.js +16 -0
  34. package/local-cli/test.js +4 -4
  35. package/local-cli/test.test.js +85 -37
  36. package/local-cli/testCommand/TestRunnerCommand.js +45 -30
  37. package/local-cli/utils/jestInternals.js +4 -1
  38. package/package.json +3 -3
  39. package/runners/jest/reporters/DetoxReporter.js +22 -2
  40. package/runners/jest/testEnvironment/index.js +83 -82
  41. package/runners/jest/testEnvironment/listeners/DetoxCoreListener.js +9 -24
  42. package/runners/jest/testEnvironment/listeners/DetoxPlatformFilterListener.js +1 -1
  43. package/src/DetoxWorker.js +0 -6
  44. package/src/artifacts/ArtifactsManager.js +0 -18
  45. package/src/configuration/composeLoggerConfig.js +2 -2
  46. package/src/configuration/composeRunnerConfig.js +7 -4
  47. package/src/devices/allocation/drivers/android/emulator/AVDValidator.js +4 -4
  48. package/src/devices/allocation/drivers/android/emulator/EmulatorAllocDriver.js +1 -1
  49. package/src/ipc/IPCClient.js +9 -5
  50. package/src/ipc/IPCServer.js +17 -13
  51. package/src/ipc/SessionState.js +3 -5
  52. package/src/logger/DetoxLogger.js +4 -6
  53. package/src/realms/DetoxContext.js +2 -8
  54. package/src/realms/DetoxInternalsFacade.js +1 -1
  55. package/src/realms/DetoxPrimaryContext.js +6 -8
  56. package/src/realms/DetoxSecondaryContext.js +2 -2
  57. package/src/symbols.js +2 -14
  58. package/src/utils/Timer.js +55 -38
  59. package/src/utils/errorUtils.js +20 -0
  60. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.md5 +0 -1
  61. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha1 +0 -1
  62. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha256 +0 -1
  63. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-javadoc.jar.sha512 +0 -1
  64. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.md5 +0 -1
  65. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha1 +0 -1
  66. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha256 +0 -1
  67. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0-sources.jar.sha512 +0 -1
  68. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.md5 +0 -1
  69. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha1 +0 -1
  70. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha256 +0 -1
  71. package/Detox-android/com/wix/detox/20.0.11-prerelease.0/detox-20.0.11-prerelease.0.pom.sha512 +0 -1
@@ -0,0 +1 @@
1
+ e87aec483ca0f1a8681dd604c172b1496be36552
@@ -0,0 +1 @@
1
+ 4af74d1ca1aaeaa1d39e5d8911cbd10161b3114367691907d8e1618033d5b3e6
@@ -0,0 +1 @@
1
+ 52171a50fce017136149bb98c6451148d77e4cf114b3026917dc51a603bd3e0f13aecdacf29a5f69731fa35767a0bd6947dfe4e7d48b16e277b73e5b5cc21619
@@ -0,0 +1 @@
1
+ 58eb8e948d53b73075a1f5e97f7e1ef87335451d
@@ -0,0 +1 @@
1
+ 4e2bc47c1bd786a7305e50cf174b2a44b76185b3510f43e6239783aa976f6ed7
@@ -0,0 +1 @@
1
+ 88399f3c653950bc413629a0801211e0532b1fa8dcc012c37855deb27e5a048b2813c85079e21763f194c76ead892762d2e357b18869a1e3e0d465405f733aa2
@@ -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.0.11-prerelease.0</version>
6
+ <version>20.0.13-prerelease.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
+ af38d8520fe68b4005004b263bd44a99
@@ -0,0 +1 @@
1
+ 4b05c8d532f93162c18be667feb8f603f8a07341
@@ -0,0 +1 @@
1
+ 70d293de323b61f3f135b127ea949f8536f9a9693c13f4c496a68ceba31b2c2d
@@ -0,0 +1 @@
1
+ fba1065b23a33a85282fbc1a47b80a2725dea603c2ccc4285956d04f7220d3428948b7dba61fe5ffad0928812c03f87549c4395b31df33e785e8b88fa5d46aeb
@@ -3,11 +3,11 @@
3
3
  <groupId>com.wix</groupId>
4
4
  <artifactId>detox</artifactId>
5
5
  <versioning>
6
- <latest>20.0.11-prerelease.0</latest>
7
- <release>20.0.11-prerelease.0</release>
6
+ <latest>20.0.13-prerelease.0</latest>
7
+ <release>20.0.13-prerelease.0</release>
8
8
  <versions>
9
- <version>20.0.11-prerelease.0</version>
9
+ <version>20.0.13-prerelease.0</version>
10
10
  </versions>
11
- <lastUpdated>20220930144845</lastUpdated>
11
+ <lastUpdated>20221027152922</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 7298eb41c092e9d6471b11d8c4072549
1
+ ee112aada0b842b84d9d0ce02c34412d
@@ -1 +1 @@
1
- d59581aa200215423697a398b1e30952dbcad89d
1
+ 4a588bcf856923db72dcce6afbbd5d3e8deac76a
@@ -1 +1 @@
1
- 964eb89f375a8ac845a5d63eaa867d544a7fdc4b0cd9abe539417827895a9b6a
1
+ 2508b9fd44abf05b74a3a95332f0ad7f91277e421f07301e69774ca9ab2addb8
@@ -1 +1 @@
1
- 8b8c26e1906aff908931afb6a7e095bd0d4eb3b08df4061c5b3645c0a6c9e1dc3cc0e9415f7e7a4b5bd7aec76c1e8f2de11388067b1e4d33cfcc2d6eb595933e
1
+ e99c975ec5eb3d44859e1b3730703240e4aafc46dd57adb66ea43667c2f16d4c57311ea041e605a68816353074b852dc9572513a66cbadf2963d2247fd3c5cd3
package/Detox-ios-src.tbz CHANGED
Binary file
package/Detox-ios.tbz CHANGED
Binary file
@@ -1,4 +1,5 @@
1
1
  -keepattributes InnerClasses, Exceptions
2
+
2
3
  -keep class com.facebook.react.modules.** { *; }
3
4
  -keep class com.facebook.react.uimanager.** { *; }
4
5
  -keep class com.facebook.react.animated.** { *; }
@@ -8,8 +9,9 @@
8
9
  -keep class com.facebook.react.ReactInstanceManager** { *; }
9
10
  -keep class com.facebook.react.ReactInstanceEventListener { *; }
10
11
 
11
- -keep class com.facebook.react.views.slider.ReactSlider { *; }
12
- -keep class com.reactnativecommunity.slider.ReactSlider { *; }
12
+ -keep class com.facebook.react.views.slider.** { *; }
13
+ -keep class com.google.android.material.slider.** { *; }
14
+ -keep class com.reactnativecommunity.slider.** { *; }
13
15
  -keep class com.reactnativecommunity.asyncstorage.** { *; }
14
16
 
15
17
  -keep class kotlin.jvm.** { *; }
package/index.d.ts CHANGED
@@ -11,6 +11,7 @@
11
11
  import { BunyanDebugStreamOptions } from 'bunyan-debug-stream';
12
12
 
13
13
  declare global {
14
+ const detox: Detox.DetoxExportWrapper;
14
15
  const device: Detox.DetoxExportWrapper['device'];
15
16
  const element: Detox.DetoxExportWrapper['element'];
16
17
  const waitFor: Detox.DetoxExportWrapper['waitFor'];
@@ -20,6 +21,7 @@ declare global {
20
21
 
21
22
  namespace NodeJS {
22
23
  interface Global {
24
+ detox: Detox.DetoxExportWrapper;
23
25
  device: Detox.DetoxExportWrapper['device'];
24
26
  element: Detox.DetoxExportWrapper['element'];
25
27
  waitFor: Detox.DetoxExportWrapper['waitFor'];
@@ -103,9 +105,9 @@ declare global {
103
105
  interface DetoxLoggerConfig {
104
106
  level?: DetoxLogLevel;
105
107
  /**
106
- * @default 'sandbox'
108
+ * @default true
107
109
  */
108
- overrideConsole?: 'all' | 'sandbox' | 'none';
110
+ overrideConsole?: boolean;
109
111
  options?: BunyanDebugStreamOptions | ((config: Partial<DetoxLoggerConfig>) => BunyanDebugStreamOptions);
110
112
  }
111
113
 
@@ -137,9 +139,13 @@ declare global {
137
139
  */
138
140
  jest?: {
139
141
  /**
140
- * Device init timeout
142
+ * Environment setup timeout
143
+ */
144
+ setupTimeout?: number | undefined;
145
+ /**
146
+ * Environment teardown timeout
141
147
  */
142
- initTimeout?: number | undefined;
148
+ teardownTimeout?: number | undefined;
143
149
  /**
144
150
  * Insist on CLI-based retry mechanism even when the failed tests have been handled
145
151
  * by jest.retryTimes(n) mechanism from Jest Circus.
@@ -152,11 +158,21 @@ declare global {
152
158
  * Retries count. Zero means a single attempt to run tests.
153
159
  */
154
160
  retries?: number;
161
+ /**
162
+ * When true, tells Detox CLI to cancel next retrying if it gets
163
+ * at least one report about a permanent test suite failure.
164
+ * Has no effect, if {@link DetoxTestRunnerConfig#retries} is
165
+ * undefined or set to zero.
166
+ *
167
+ * @default false
168
+ * @see {DetoxInternals.DetoxTestFileReport#isPermanentFailure}
169
+ */
170
+ bail?: boolean;
155
171
  /**
156
172
  * Custom handler to process --inspect-brk CLI flag.
157
- * Use it when you rely on another test runner than Jest.
173
+ * Use it when you rely on another test runner than Jest to mutate the config.
158
174
  */
159
- inspectBrk?: boolean | ((config: DetoxTestRunnerConfig) => void);
175
+ inspectBrk?: (config: DetoxTestRunnerConfig) => void;
160
176
  /**
161
177
  * Forward environment variables to the spawned test runner
162
178
  * accordingly to the given CLI argument overrides.
package/internals.d.ts CHANGED
@@ -40,28 +40,80 @@ declare global {
40
40
  // endregion
41
41
 
42
42
  // region Lifecycle
43
- onRunStart(event: unknown): Promise<void>;
44
- onRunDescribeStart(event: unknown): Promise<void>;
45
- onTestStart(event: unknown): Promise<void>;
46
- onHookStart(event: unknown): Promise<void>;
47
- onHookFailure(event: unknown): Promise<void>;
48
- onHookSuccess(event: unknown): Promise<void>;
49
- onTestFnStart(event: unknown): Promise<void>;
50
- onTestFnFailure(event: unknown): Promise<void>;
51
- onTestFnSuccess(event: unknown): Promise<void>;
52
- onTestDone(event: unknown): Promise<void>;
53
- onRunDescribeFinish(event: unknown): Promise<void>;
54
- onRunFinish(event: unknown): Promise<void>;
55
-
56
- /**
57
- * Reports to Detox CLI about failed tests that could have been re-run if
43
+ /**
44
+ * Reports that the test runner started executing a test suite, e.g. a `beforeAll` hook or a first test.
45
+ */
46
+ onRunDescribeStart(event: {
47
+ /** Test suite name */
48
+ name: string;
49
+ }): Promise<void>;
50
+ /**
51
+ * Reports that the test runner started executing a specific test.
52
+ */
53
+ onTestStart(event: {
54
+ /** Test name */
55
+ title: string;
56
+ /** Test name including the ancestor suite titles */
57
+ fullName: string;
58
+ /**
59
+ * N-th time this test is running, if there is a retry mechanism.
60
+ *
61
+ * @default 1
62
+ */
63
+ invocations?: number;
64
+ status: 'running';
65
+ }): Promise<void>;
66
+ /**
67
+ * Reports about an error in the midst of `beforeAll`, `beforeEach`, `afterEach`, `afterAll` or any other hook.
68
+ */
69
+ onHookFailure(event: {
70
+ error: Error | string;
71
+ /**
72
+ * @example 'beforeAll'
73
+ * @example 'afterEach'
74
+ */
75
+ hook: string;
76
+ }): Promise<void>;
77
+ /**
78
+ * Reports about an error in the midst of a test function, `test` or `it`.
79
+ */
80
+ onTestFnFailure(event: {
81
+ error: Error | string;
82
+ }): Promise<void>;
83
+ /**
84
+ * Reports the final status of the test, `passed` or `failed`.
85
+ */
86
+ onTestDone(event: {
87
+ /** Test name */
88
+ title: string;
89
+ /** Test name including the ancestor suite titles */
90
+ fullName: string;
91
+ /**
92
+ * N-th time this test is running, if there is a retry mechanism.
93
+ *
94
+ * @default 1
95
+ */
96
+ invocations?: number;
97
+ status: 'passed' | 'failed';
98
+ /** Whether a timeout was the reason for why the test failed. */
99
+ timedOut?: boolean;
100
+ }): Promise<void>;
101
+ /**
102
+ * Reports that the test runner has finished executing a test suite, e.g. all the `afterAll` hooks have been executed or the last test has finished running.
103
+ */
104
+ onRunDescribeFinish(event: {
105
+ /** Test suite name */
106
+ name: string;
107
+ }): Promise<void>;
108
+
109
+ /**
110
+ * Reports to Detox CLI about passed and failed test files.
111
+ * The failed test files might be re-run again if
58
112
  * {@link Detox.DetoxTestRunnerConfig#retries} is set to a non-zero.
59
113
  *
60
- * @param testFilePaths array of failed test files' paths
61
- * @param permanent whether the failure is permanent, and the tests
62
- * should not be re-run.
114
+ * @param testResults - reports about test files
63
115
  */
64
- reportFailedTests(testFilePaths: string[], permanent?: boolean): Promise<void>;
116
+ reportTestResults(testResults: DetoxTestFileReport[]): Promise<void>;
65
117
  // endregion
66
118
 
67
119
  readonly config: RuntimeConfig;
@@ -88,11 +140,14 @@ declare global {
88
140
 
89
141
  type DetoxInitOptions = {
90
142
  cwd: string;
143
+ /**
144
+ * @internal
145
+ */
91
146
  argv: Record<string, unknown>;
92
147
  testRunnerArgv: Record<string, unknown>;
93
148
  override: Partial<Detox.DetoxConfig>;
94
149
  /** @inheritDoc */
95
- global: NodeJS.Global;
150
+ global: NodeJS.Global | {};
96
151
  /**
97
152
  * Worker ID. Used to distinguish allocated workers in parallel test execution environment.
98
153
  *
@@ -111,7 +166,7 @@ declare global {
111
166
  * {@link DetoxInternals.Facade#setup} might override {@link Console} methods
112
167
  * to integrate it with Detox loggeing subsystem.
113
168
  */
114
- global: NodeJS.Global;
169
+ global: NodeJS.Global | {};
115
170
  /**
116
171
  * Worker ID. Used to distinguish allocated workers in parallel test execution environment.
117
172
  *
@@ -120,25 +175,48 @@ declare global {
120
175
  workerId: string;
121
176
  };
122
177
 
178
+ type DetoxTestFileReport = {
179
+ /**
180
+ * Global or relative path to the failed test file.
181
+ */
182
+ testFilePath: string;
183
+ /**
184
+ * Whether the test passed or not.
185
+ */
186
+ success: boolean;
187
+ /**
188
+ * Top-level error if the entire test file failed.
189
+ */
190
+ testExecError?: { name?: string; message: string; stack?: string; };
191
+ /**
192
+ * If the test failed, it should tell whether the failure is permanent.
193
+ * Permanent failure means that the test file should not be re-run.
194
+ *
195
+ * @default false
196
+ * @see {Detox.DetoxTestRunnerConfig#retries}
197
+ */
198
+ isPermanentFailure?: boolean;
199
+ };
200
+
123
201
  type SessionState = Readonly<{
124
202
  /**
125
203
  * Randomly generated ID for the entire Detox test session, including retries.
126
204
  */
127
205
  id: string;
128
206
  /**
129
- * Permanently failed test file paths.
130
- */
131
- failedTestFiles: string[];
132
- /**
133
- * Failed test file paths suggested to retry via Detox CLI mechanism.
207
+ * Results of test file executions. Primarily used for Detox CLI retry mechanism.
134
208
  */
135
- testFilesToRetry: string[];
209
+ testResults: DetoxTestFileReport[];
136
210
  /**
137
211
  * Retry index of the test session: 0..retriesCount.
138
212
  */
139
213
  testSessionIndex: number;
140
214
  /**
141
- * TODO
215
+ * Count of Detox contexts with a worker installed.
216
+ * Oversimplified, it reflects the count of allocated devices in the current test session.
217
+ *
218
+ * @see {Facade#init}
219
+ * @see {Facade#installWorker}
142
220
  */
143
221
  workersCount: number;
144
222
  }>;
package/local-cli/cli.js CHANGED
@@ -1,8 +1,11 @@
1
1
  #!/usr/bin/env node
2
+ const fs = require('fs');
3
+
4
+ const _ = require('lodash');
2
5
  const yargs = require('yargs');
3
6
 
7
+ const logger = require('../internals').log.child({ cat: 'cli' });
4
8
  const DetoxError = require('../src/errors/DetoxError');
5
- const logger = require('../src/utils/logger').child({ cat: 'cli' });
6
9
 
7
10
  yargs
8
11
  .scriptName('detox')
@@ -25,12 +28,11 @@ yargs
25
28
  .wrap(yargs.terminalWidth() * 0.9)
26
29
  .fail(function(msg, err, program) {
27
30
  if (err) {
28
- const lines = DetoxError.format(err).split('\n');
29
- for (const line of lines) {
30
- logger.error(line);
31
- }
31
+ logger.error(DetoxError.format(err));
32
32
  // eslint-disable-next-line no-console
33
33
  console.error('');
34
+ // @ts-ignore
35
+ _.attempt(() => fs.unlinkSync(logger.file));
34
36
  // eslint-disable-next-line no-process-exit
35
37
  process.exit(1);
36
38
  }
package/local-cli/init.js CHANGED
@@ -76,7 +76,7 @@ function createDefaultConfigurations() {
76
76
  config: 'e2e/jest.config.js',
77
77
  },
78
78
  jest: {
79
- initTimeout: 120000,
79
+ setupTimeout: 120000,
80
80
  },
81
81
  },
82
82
  apps: {
@@ -0,0 +1,16 @@
1
+ const { log } = require('../internals');
2
+ const DeviceRegistry = require('../src/devices/DeviceRegistry');
3
+ const { getDetoxLibraryRootPath } = require('../src/utils/environment');
4
+
5
+
6
+ module.exports.command = 'reset-lock-file';
7
+ module.exports.desc = 'Resets all Detox lock files. Useful when you need to run multiple `detox test` commands in parallel with --keepLockFile.';
8
+
9
+ module.exports.handler = async function resetLockFile() {
10
+ await Promise.all([
11
+ DeviceRegistry.forIOS().reset(),
12
+ DeviceRegistry.forAndroid().reset(),
13
+ ]);
14
+
15
+ log.info(`Cleaned lock files from: ${getDetoxLibraryRootPath()}`);
16
+ };
package/local-cli/test.js CHANGED
@@ -16,14 +16,14 @@ module.exports.handler = async function test({ detoxArgs, runnerArgs }) {
16
16
  };
17
17
 
18
18
  const config = await detox.resolveConfig(opts);
19
- if (!config.testRunner.inspectBrk) {
19
+ if (!detoxArgs['inspect-brk']) {
20
20
  await detox.init(opts);
21
21
  }
22
22
 
23
23
  const runnerCommand = new TestRunnerCommand()
24
- .setDeviceConfig(detox.config.device)
25
- .replicateCLIConfig(detox.config.cli)
26
- .setRunnerConfig(detox.config.testRunner);
24
+ .setDeviceConfig(config.device)
25
+ .replicateCLIConfig(config.cli)
26
+ .setRunnerConfig(config.testRunner);
27
27
 
28
28
  await runnerCommand.execute();
29
29
  } finally {