detox 20.1.0 → 20.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintrc.js +2 -7
- package/Detox-android/com/wix/detox/{20.1.0/detox-20.1.0-javadoc.jar → 20.1.1/detox-20.1.1-javadoc.jar} +0 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-javadoc.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-javadoc.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-javadoc.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-javadoc.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.1.0/detox-20.1.0-sources.jar → 20.1.1/detox-20.1.1-sources.jar} +0 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.aar +0 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.aar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.aar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.aar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.aar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.1.0/detox-20.1.0.pom → 20.1.1/detox-20.1.1.pom} +1 -1
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.pom.md5 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.1.1/detox-20.1.1.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/src/full/java/com/wix/detox/espresso/idlingresources/DescriptiveIdlingResource.kt +1 -1
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/AsyncStorageIdlingResource.kt +1 -0
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/BridgeIdlingResource.java +6 -6
- package/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/timers/TimersIdlingResource.kt +1 -0
- package/index.js +12 -1
- package/internals.js +10 -3
- package/package.json +15 -3
- package/src/DetoxWorker.js +1 -1
- package/src/android/core/NativeMatcher.js +14 -10
- package/src/android/espressoapi/EspressoDetox.js +1 -1
- package/src/android/espressoapi/web/WebElement.js +1 -1
- package/src/android/matchers/native.js +1 -2
- package/src/artifacts/templates/plugin/ArtifactPlugin.js +1 -1
- package/src/artifacts/templates/plugin/TwoSnapshotsPerTestPlugin.js +2 -1
- package/src/artifacts/templates/plugin/WholeTestRecorderPlugin.js +3 -2
- package/src/client/AsyncWebSocket.js +3 -2
- package/src/configuration/collectCliConfig.js +1 -1
- package/src/configuration/composeLoggerConfig.js +1 -0
- package/src/devices/allocation/drivers/AllocationDriverBase.js +4 -2
- package/src/devices/allocation/factories/base.js +1 -1
- package/src/devices/common/drivers/android/tools/AppInstallHelper.js +4 -4
- package/src/devices/common/drivers/android/tools/{FileXfer.js → FileTransfer.js} +2 -2
- package/src/devices/common/drivers/android/tools/TempFileTransfer.js +14 -0
- package/src/devices/lifecycle/GenyGlobalLifecycleHandler.js +0 -2
- package/src/devices/runtime/drivers/android/AndroidDriver.js +7 -6
- package/src/devices/runtime/factories/android.js +6 -5
- package/src/devices/runtime/factories/base.js +3 -2
- package/src/ios/expectTwo.js +19 -11
- package/src/logger/DetoxLogger.js +5 -5
- package/src/logger/utils/BunyanLogger.js +5 -4
- package/src/realms/DetoxContext.js +5 -2
- package/src/realms/DetoxInternalsFacade.js +1 -1
- package/src/realms/DetoxPrimaryContext.js +2 -2
- package/src/realms/DetoxSecondaryContext.js +1 -1
- package/src/{symbols.js → realms/symbols.js} +0 -0
- package/src/servicelocator/android/index.js +2 -2
- package/src/utils/ExclusiveLockfile.js +1 -0
- package/src/utils/argparse.js +0 -27
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-javadoc.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-javadoc.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-javadoc.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-javadoc.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.aar +0 -0
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.aar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.aar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.aar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.aar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.1.0/detox-20.1.0.pom.sha512 +0 -1
- package/src/devices/common/drivers/android/tools/TempFileXfer.js +0 -16
- package/src/realms/index.js +0 -10
package/.eslintrc.js
CHANGED
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
node: true
|
18
18
|
},
|
19
19
|
globals: {
|
20
|
-
|
20
|
+
// TODO: remove use of fail() across the project because Jest Circus doesn't support it
|
21
21
|
'fail': true
|
22
22
|
},
|
23
23
|
rules: {
|
@@ -54,12 +54,7 @@ module.exports = {
|
|
54
54
|
}
|
55
55
|
],
|
56
56
|
'no-prototype-builtins': 'off',
|
57
|
-
'no-unused-vars':
|
58
|
-
'error',
|
59
|
-
{
|
60
|
-
'argsIgnorePattern': '^_'
|
61
|
-
}
|
62
|
-
],
|
57
|
+
'no-unused-vars': 'off',
|
63
58
|
'node/no-unpublished-require': 'warn',
|
64
59
|
'object-curly-spacing': [
|
65
60
|
'error',
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
3533d80394c8bfe48da303ca68dd1f89
|
@@ -0,0 +1 @@
|
|
1
|
+
4113dbb267c11ac42088bc269e86cde5bc6db556
|
@@ -0,0 +1 @@
|
|
1
|
+
13c9c7d4904c88e394d57285cad46a9ceeb93e89341c6cc8b2367fcf89f05a1c
|
@@ -0,0 +1 @@
|
|
1
|
+
1bba8a54331fb99a135bb5fa6230c06ac1eeee49a1c82457ab4a93d556dabecb82562fc4ed28890a2482aa23bb2abd29c5f1c7a67053161a2d45c6258493021d
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
4457ab21cced7cb4abc14a3a1bfd382e
|
@@ -0,0 +1 @@
|
|
1
|
+
06d2b66f9a4f83667da69bc232a41d9a9be65dae
|
@@ -0,0 +1 @@
|
|
1
|
+
8c600ab5f63651b72eb24f709a3cd1c4a854b7aeb698edf3df4ee4ba8b62faef
|
@@ -0,0 +1 @@
|
|
1
|
+
475b2e2805f4056469824ab7c0ba5ac1f149eea95d4a19f19e49d448151644db5d813d627f230a95d26f23e727c8c54205ab8da7e6c8e99f8284d6e4b11c8642
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
c7eb63b23e9fec3154e5402cc0f65283
|
@@ -0,0 +1 @@
|
|
1
|
+
16bed62cec4774262c71a7daad13efcdac3c7942
|
@@ -0,0 +1 @@
|
|
1
|
+
c12164b0a26a6db45c65d984af4c2a880e2bf5d516ceb582361576eff713e378
|
@@ -0,0 +1 @@
|
|
1
|
+
d50db96253552903c6acf2328ff2baa9788aac5846622bc01c4c9e6026738991f6eea1ea2723afe21ffdec692a3caeadb39b6ac5cfb31bf40c7d184e058701bb
|
@@ -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.
|
6
|
+
<version>20.1.1</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
|
+
206c05d36b87423370c11d774d657d2c
|
@@ -0,0 +1 @@
|
|
1
|
+
7d21c64abcb385dc4abad4710aa28a07bc0a0139
|
@@ -0,0 +1 @@
|
|
1
|
+
621bb24a95f5b035a6a3aa83f7a8539f65b8bef7dad040decef5baf855989303
|
@@ -0,0 +1 @@
|
|
1
|
+
8501704d10d93054cc9707fac37e85433003e6922dbc35e44011bf43660c402871c2fd830c6ad699e7ac455dbf780650ab34726c8548b9e495dcfbadb6b470a2
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<groupId>com.wix</groupId>
|
4
4
|
<artifactId>detox</artifactId>
|
5
5
|
<versioning>
|
6
|
-
<latest>20.1.
|
7
|
-
<release>20.1.
|
6
|
+
<latest>20.1.1</latest>
|
7
|
+
<release>20.1.1</release>
|
8
8
|
<versions>
|
9
|
-
<version>20.1.
|
9
|
+
<version>20.1.1</version>
|
10
10
|
</versions>
|
11
|
-
<lastUpdated>
|
11
|
+
<lastUpdated>20221228155305</lastUpdated>
|
12
12
|
</versioning>
|
13
13
|
</metadata>
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
34496b51530e21c8da62be3f7ae4ea68
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
c9ac4db5ef1c06124081c598f688aad051cf8ac1
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
800f040e828f15c49d2189d6c80f99c3433ceabb063f87413b60eaeb17e5a48d
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
696664270a4a6893fdb1193f79851a049a08294a5f16c0696ecc40999543eff16367c6bd1aebad62305820ecf447056a620fc65f45aa4aca6f33914cb78680b4
|
package/Detox-ios-src.tbz
CHANGED
Binary file
|
package/Detox-ios.tbz
CHANGED
Binary file
|
@@ -48,6 +48,12 @@ public class BridgeIdlingResource extends DetoxBaseIdlingResource implements Not
|
|
48
48
|
return "bridge";
|
49
49
|
}
|
50
50
|
|
51
|
+
@Nullable
|
52
|
+
@Override
|
53
|
+
public Map<String, Object> getBusyHint() {
|
54
|
+
return null;
|
55
|
+
}
|
56
|
+
|
51
57
|
@Override
|
52
58
|
protected boolean checkIdle() {
|
53
59
|
boolean ret = idleNow.get();
|
@@ -85,10 +91,4 @@ public class BridgeIdlingResource extends DetoxBaseIdlingResource implements Not
|
|
85
91
|
callback.onTransitionToIdle();
|
86
92
|
}
|
87
93
|
}
|
88
|
-
|
89
|
-
@Nullable
|
90
|
-
@Override
|
91
|
-
public Map<String, Object> getBusyHint() {
|
92
|
-
return null;
|
93
|
-
}
|
94
94
|
}
|
@@ -13,6 +13,7 @@ class TimersIdlingResource @JvmOverloads constructor(
|
|
13
13
|
|
14
14
|
override fun getName(): String = this.javaClass.name
|
15
15
|
override fun getDebugName(): String = "timers"
|
16
|
+
override fun getBusyHint(): Map<String, Any>? = null
|
16
17
|
|
17
18
|
override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback?) {
|
18
19
|
this.callback = callback
|
package/index.js
CHANGED
@@ -1 +1,12 @@
|
|
1
|
-
|
1
|
+
function create() {
|
2
|
+
if (process.env.DETOX_CONFIG_SNAPSHOT_PATH) {
|
3
|
+
return require('./src/realms/secondary');
|
4
|
+
} else {
|
5
|
+
return require('./src/realms/primary');
|
6
|
+
}
|
7
|
+
}
|
8
|
+
|
9
|
+
/** @type {Detox.DetoxExportWrapper} */
|
10
|
+
module.exports = global['__detox__']
|
11
|
+
? global['__detox__'].clientApi
|
12
|
+
: create();
|
package/internals.js
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
|
2
|
-
const
|
1
|
+
function create() {
|
2
|
+
const context = require('./index');
|
3
|
+
const DetoxInternalsFacade = require('./src/realms/DetoxInternalsFacade');
|
3
4
|
|
4
|
-
|
5
|
+
return new DetoxInternalsFacade(context);
|
6
|
+
}
|
7
|
+
|
8
|
+
/** @type {DetoxInternals.Facade} */
|
9
|
+
module.exports = global['__detox__']
|
10
|
+
? global['__detox__'].internalsApi
|
11
|
+
: create();
|
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.
|
4
|
+
"version": "20.1.1",
|
5
5
|
"bin": {
|
6
6
|
"detox": "local-cli/cli.js"
|
7
7
|
},
|
@@ -41,12 +41,14 @@
|
|
41
41
|
"@types/ws": "^7.4.0",
|
42
42
|
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
43
43
|
"@typescript-eslint/parser": "^5.4.0",
|
44
|
+
"cross-env": "^7.0.3",
|
44
45
|
"eslint": "^8.3.0",
|
45
46
|
"eslint-plugin-import": "^2.23.3",
|
46
47
|
"eslint-plugin-no-only-tests": "^2.6.0",
|
47
48
|
"eslint-plugin-node": "^11.1.0",
|
48
49
|
"eslint-plugin-unicorn": "^39.0.0",
|
49
50
|
"jest": "^28.1.3",
|
51
|
+
"jest-allure2-reporter": "^1.2.1",
|
50
52
|
"mockdate": "^2.0.1",
|
51
53
|
"prettier": "1.7.0",
|
52
54
|
"react-native": "0.69.7",
|
@@ -68,7 +70,6 @@
|
|
68
70
|
"ini": "^1.3.4",
|
69
71
|
"json-cycle": "^1.3.0",
|
70
72
|
"lodash": "^4.17.5",
|
71
|
-
"minimist": "^1.2.0",
|
72
73
|
"multi-sort-stream": "^1.0.3",
|
73
74
|
"multipipe": "^4.0.0",
|
74
75
|
"node-ipc": "^9.2.1",
|
@@ -122,6 +123,8 @@
|
|
122
123
|
"__tests__",
|
123
124
|
".test.js$",
|
124
125
|
".mock.js$",
|
126
|
+
"index.js",
|
127
|
+
"internals.js",
|
125
128
|
"local-cli/utils",
|
126
129
|
"src/environmentFactory",
|
127
130
|
"src/android/espressoapi",
|
@@ -166,6 +169,15 @@
|
|
166
169
|
],
|
167
170
|
"resetMocks": true,
|
168
171
|
"resetModules": true,
|
172
|
+
"reporters": [
|
173
|
+
"default",
|
174
|
+
[
|
175
|
+
"jest-allure2-reporter",
|
176
|
+
{
|
177
|
+
"getEnvironmentInfo": false
|
178
|
+
}
|
179
|
+
]
|
180
|
+
],
|
169
181
|
"coverageReporters": [
|
170
182
|
"html",
|
171
183
|
"json",
|
@@ -187,5 +199,5 @@
|
|
187
199
|
}
|
188
200
|
}
|
189
201
|
},
|
190
|
-
"gitHead": "
|
202
|
+
"gitHead": "c0135e1a0ce091318cc34b7f162157fbe73b11ab"
|
191
203
|
}
|
package/src/DetoxWorker.js
CHANGED
@@ -5,7 +5,7 @@ const Client = require('./client/Client');
|
|
5
5
|
const environmentFactory = require('./environmentFactory');
|
6
6
|
const { DetoxRuntimeErrorComposer } = require('./errors');
|
7
7
|
const { InvocationManager } = require('./invoke');
|
8
|
-
const symbols = require('./symbols');
|
8
|
+
const symbols = require('./realms/symbols');
|
9
9
|
const AsyncEmitter = require('./utils/AsyncEmitter');
|
10
10
|
const uuid = require('./utils/uuid');
|
11
11
|
|
@@ -2,29 +2,33 @@ const invoke = require('../../invoke');
|
|
2
2
|
const DetoxMatcherApi = require('../espressoapi/DetoxMatcher');
|
3
3
|
|
4
4
|
class NativeMatcher {
|
5
|
+
constructor(call) {
|
6
|
+
this._call = call || null;
|
7
|
+
}
|
8
|
+
|
5
9
|
withAncestor(matcher) {
|
6
|
-
|
7
|
-
return
|
10
|
+
const call = invoke.callDirectly(DetoxMatcherApi.matcherWithAncestor(this, matcher));
|
11
|
+
return new NativeMatcher(call);
|
8
12
|
}
|
9
13
|
|
10
14
|
withDescendant(matcher) {
|
11
|
-
|
12
|
-
return
|
15
|
+
const call = invoke.callDirectly(DetoxMatcherApi.matcherWithDescendant(this, matcher));
|
16
|
+
return new NativeMatcher(call);
|
13
17
|
}
|
14
18
|
|
15
19
|
and(matcher) {
|
16
|
-
|
17
|
-
return
|
20
|
+
const call = invoke.callDirectly(DetoxMatcherApi.matcherForAnd(this, matcher));
|
21
|
+
return new NativeMatcher(call);
|
18
22
|
}
|
19
23
|
|
20
24
|
or(matcher) {
|
21
|
-
|
22
|
-
return
|
25
|
+
const call = invoke.callDirectly(DetoxMatcherApi.matcherForOr(this, matcher));
|
26
|
+
return new NativeMatcher(call);
|
23
27
|
}
|
24
28
|
|
25
29
|
get not() {
|
26
|
-
|
27
|
-
return
|
30
|
+
const call = invoke.callDirectly(DetoxMatcherApi.matcherForNot(this));
|
31
|
+
return new NativeMatcher(call);
|
28
32
|
}
|
29
33
|
|
30
34
|
_avoidProblematicReactNativeElements() {
|
@@ -69,7 +69,7 @@ class WebElement {
|
|
69
69
|
static runScriptWithArgs(element, script, args) {
|
70
70
|
if (typeof script !== "string") throw new Error("script should be a string, but got " + (script + (" (" + (typeof script + ")"))));
|
71
71
|
|
72
|
-
if (typeof args !== 'object' || !args
|
72
|
+
if (typeof args !== 'object' || !Array.isArray(args)) {
|
73
73
|
throw new Error('args must be an array, got ' + typeof args);
|
74
74
|
}
|
75
75
|
|
@@ -64,8 +64,7 @@ class ToggleMatcher extends NativeMatcher {
|
|
64
64
|
}
|
65
65
|
}
|
66
66
|
|
67
|
-
// TODO
|
68
|
-
// Please be aware, that this is just a dummy matcher
|
67
|
+
// TODO: Please be aware, that this is just a dummy matcher
|
69
68
|
class TraitsMatcher extends NativeMatcher {
|
70
69
|
constructor(value) {
|
71
70
|
super();
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
1
2
|
// @ts-nocheck
|
2
3
|
const DetoxRuntimeError = require('../../../errors/DetoxRuntimeError');
|
3
4
|
|
@@ -85,7 +86,7 @@ class TwoSnapshotsPerTestPlugin extends ArtifactPlugin {
|
|
85
86
|
* @protected
|
86
87
|
* @abstract
|
87
88
|
*/
|
88
|
-
async preparePathForSnapshot(testSummary, snapshotName) {}
|
89
|
+
async preparePathForSnapshot(testSummary, snapshotName) {}
|
89
90
|
|
90
91
|
/***
|
91
92
|
* Creates a handle for a test artifact (video recording, log, etc.)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
2
2
|
const ArtifactPlugin = require('./ArtifactPlugin');
|
3
3
|
|
4
4
|
/***
|
@@ -8,6 +8,7 @@ class WholeTestRecorderPlugin extends ArtifactPlugin {
|
|
8
8
|
constructor({ api }) {
|
9
9
|
super({ api });
|
10
10
|
|
11
|
+
/** @type {*} */
|
11
12
|
this.testRecording = null;
|
12
13
|
}
|
13
14
|
|
@@ -51,7 +52,7 @@ class WholeTestRecorderPlugin extends ArtifactPlugin {
|
|
51
52
|
* @abstract
|
52
53
|
* @protected
|
53
54
|
*/
|
54
|
-
createTestRecording() {}
|
55
|
+
createTestRecording(config) {}
|
55
56
|
|
56
57
|
/***
|
57
58
|
* @abstract
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
1
2
|
// @ts-nocheck
|
2
3
|
const _ = require('lodash');
|
3
4
|
const WebSocket = require('ws');
|
@@ -176,7 +177,7 @@ class AsyncWebSocket {
|
|
176
177
|
* @param {WebSocket.OpenEvent} event
|
177
178
|
* @private
|
178
179
|
*/
|
179
|
-
_onOpen(event) {
|
180
|
+
_onOpen(event) {
|
180
181
|
log.trace(`opened web socket to: ${this._url}`);
|
181
182
|
this._opening.resolve();
|
182
183
|
this._opening = null;
|
@@ -268,7 +269,7 @@ class AsyncWebSocket {
|
|
268
269
|
* @param {WebSocket.CloseEvent | null} event
|
269
270
|
* @private
|
270
271
|
*/
|
271
|
-
_onClose(event) {
|
272
|
+
_onClose(event) {
|
272
273
|
if (this._closing) {
|
273
274
|
this._closing.resolve();
|
274
275
|
}
|
@@ -23,7 +23,7 @@ const asNumber = (value) => {
|
|
23
23
|
};
|
24
24
|
|
25
25
|
function collectCliConfig({ argv }) {
|
26
|
-
const env = (key) => argparse.
|
26
|
+
const env = (key) => argparse.getEnvValue(key);
|
27
27
|
const get = (key, fallback) => {
|
28
28
|
const value = argv && Reflect.has(argv, key) ? argv[key] : env(key);
|
29
29
|
return value === undefined ? fallback : value;
|
@@ -1,4 +1,6 @@
|
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
1
2
|
// @ts-nocheck
|
3
|
+
|
2
4
|
/**
|
3
5
|
* @typedef DeallocOptions
|
4
6
|
* @property shutdown { Boolean }
|
@@ -9,14 +11,14 @@ class AllocationDriverBase {
|
|
9
11
|
* @param deviceConfig { Object }
|
10
12
|
* @return {Promise<DeviceCookie>}
|
11
13
|
*/
|
12
|
-
async allocate(deviceConfig) {}
|
14
|
+
async allocate(deviceConfig) {}
|
13
15
|
|
14
16
|
/**
|
15
17
|
* @param cookie { DeviceCookie }
|
16
18
|
* @param options { DeallocOptions }
|
17
19
|
* @return {Promise<void>}
|
18
20
|
*/
|
19
|
-
async free(cookie, options) {}
|
21
|
+
async free(cookie, options) {}
|
20
22
|
}
|
21
23
|
|
22
24
|
module.exports = AllocationDriverBase;
|
@@ -16,7 +16,7 @@ class DeviceAllocatorFactory {
|
|
16
16
|
* @returns { AllocationDriverBase }
|
17
17
|
* @private
|
18
18
|
*/
|
19
|
-
_createDriver(deps) {} // eslint-disable-line no-unused-vars
|
19
|
+
_createDriver(deps) {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
20
20
|
}
|
21
21
|
|
22
22
|
module.exports = DeviceAllocatorFactory;
|
@@ -1,13 +1,13 @@
|
|
1
1
|
// TODO Tweak such that if apk's already exist on the device (need to store uniquely), they will not be resent (would optimize cloud, for example)
|
2
2
|
|
3
3
|
class AppInstallHelper {
|
4
|
-
constructor(adb,
|
4
|
+
constructor(adb, fileTransfer) {
|
5
5
|
this._adb = adb;
|
6
|
-
this.
|
6
|
+
this._fileTransfer = fileTransfer;
|
7
7
|
}
|
8
8
|
|
9
9
|
async install(deviceId, appBinaryPath, testBinaryPath) {
|
10
|
-
await this.
|
10
|
+
await this._fileTransfer.prepareDestinationDir(deviceId);
|
11
11
|
await this._pushAndInstallBinary(deviceId, appBinaryPath, 'Application.apk');
|
12
12
|
if (testBinaryPath) {
|
13
13
|
await this._pushAndInstallBinary(deviceId, testBinaryPath, 'Test.apk');
|
@@ -15,7 +15,7 @@ class AppInstallHelper {
|
|
15
15
|
}
|
16
16
|
|
17
17
|
async _pushAndInstallBinary(deviceId, binaryPath, binaryFilenameOnTarget) {
|
18
|
-
const binaryPathOnTarget = await this.
|
18
|
+
const binaryPathOnTarget = await this._fileTransfer.send(deviceId, binaryPath, binaryFilenameOnTarget);
|
19
19
|
await this._adb.remoteInstall(deviceId, binaryPathOnTarget);
|
20
20
|
}
|
21
21
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
const path = require('path');
|
2
2
|
|
3
|
-
class
|
3
|
+
class FileTransfer {
|
4
4
|
constructor(adb, destinationDir) {
|
5
5
|
this._adb = adb;
|
6
6
|
this._dir = destinationDir;
|
@@ -18,4 +18,4 @@ class FileXfer {
|
|
18
18
|
}
|
19
19
|
}
|
20
20
|
|
21
|
-
module.exports =
|
21
|
+
module.exports = FileTransfer;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
const FileTransfer = require('./FileTransfer');
|
2
|
+
|
3
|
+
const FILE_PATH = '/data/local/tmp/detox';
|
4
|
+
|
5
|
+
class TempFileTransfer extends FileTransfer {
|
6
|
+
constructor(adb) {
|
7
|
+
super(adb, FILE_PATH);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = {
|
12
|
+
TempFileTransfer,
|
13
|
+
FILE_PATH
|
14
|
+
};
|
@@ -12,8 +12,6 @@ class GenyGlobalLifecycleHandler {
|
|
12
12
|
this._instanceLifecycleService = instanceLifecycleService;
|
13
13
|
}
|
14
14
|
|
15
|
-
// TODO: remove this ignore as soon as DetoxPrimaryContext is covered with tests
|
16
|
-
/* istanbul ignore next */
|
17
15
|
async globalInit() {}
|
18
16
|
|
19
17
|
emergencyCleanup() {
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
1
2
|
// @ts-nocheck
|
2
3
|
const path = require('path');
|
3
4
|
const URL = require('url').URL;
|
@@ -31,7 +32,7 @@ const log = logger.child({ cat: 'device' });
|
|
31
32
|
* @property adb { ADB }
|
32
33
|
* @property aapt { AAPT }
|
33
34
|
* @property apkValidator { ApkValidator }
|
34
|
-
* @property
|
35
|
+
* @property fileTransfer { FileTransfer }
|
35
36
|
* @property appInstallHelper { AppInstallHelper }
|
36
37
|
* @property appUninstallHelper { AppUninstallHelper }
|
37
38
|
* @property devicePathBuilder { AndroidDevicePathBuilder }
|
@@ -51,7 +52,7 @@ class AndroidDriver extends DeviceDriverBase {
|
|
51
52
|
this.aapt = deps.aapt;
|
52
53
|
this.apkValidator = deps.apkValidator;
|
53
54
|
this.invocationManager = deps.invocationManager;
|
54
|
-
this.
|
55
|
+
this.fileTransfer = deps.fileTransfer;
|
55
56
|
this.appInstallHelper = deps.appInstallHelper;
|
56
57
|
this.appUninstallHelper = deps.appUninstallHelper;
|
57
58
|
this.devicePathBuilder = deps.devicePathBuilder;
|
@@ -162,11 +163,11 @@ class AndroidDriver extends DeviceDriverBase {
|
|
162
163
|
}
|
163
164
|
}
|
164
165
|
|
165
|
-
async pressBack() {
|
166
|
+
async pressBack() {
|
166
167
|
await this.uiDevice.pressBack();
|
167
168
|
}
|
168
169
|
|
169
|
-
async sendToHome(params) {
|
170
|
+
async sendToHome(params) {
|
170
171
|
await this.uiDevice.pressHome();
|
171
172
|
}
|
172
173
|
|
@@ -331,8 +332,8 @@ class AndroidDriver extends DeviceDriverBase {
|
|
331
332
|
}
|
332
333
|
|
333
334
|
async _sendNotificationDataToDevice(dataFileLocalPath, adbName) {
|
334
|
-
await this.
|
335
|
-
return await this.
|
335
|
+
await this.fileTransfer.prepareDestinationDir(adbName);
|
336
|
+
return await this.fileTransfer.send(adbName, dataFileLocalPath, 'notification.json');
|
336
337
|
}
|
337
338
|
|
338
339
|
_startActivityWithUrl(url) {
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
1
2
|
const RuntimeDeviceFactory = require('./base');
|
2
3
|
|
3
4
|
class RuntimeDriverFactoryAndroid extends RuntimeDeviceFactory {
|
@@ -6,7 +7,7 @@ class RuntimeDriverFactoryAndroid extends RuntimeDeviceFactory {
|
|
6
7
|
const adb = serviceLocator.adb;
|
7
8
|
const aapt = serviceLocator.aapt;
|
8
9
|
const apkValidator = serviceLocator.apkValidator;
|
9
|
-
const
|
10
|
+
const fileTransfer = serviceLocator.fileTransfer;
|
10
11
|
const devicePathBuilder = serviceLocator.devicePathBuilder;
|
11
12
|
|
12
13
|
const AppInstallHelper = require('../../common/drivers/android/tools/AppInstallHelper');
|
@@ -18,9 +19,9 @@ class RuntimeDriverFactoryAndroid extends RuntimeDeviceFactory {
|
|
18
19
|
adb,
|
19
20
|
aapt,
|
20
21
|
apkValidator,
|
21
|
-
|
22
|
+
fileTransfer,
|
22
23
|
devicePathBuilder,
|
23
|
-
appInstallHelper: new AppInstallHelper(adb,
|
24
|
+
appInstallHelper: new AppInstallHelper(adb, fileTransfer),
|
24
25
|
appUninstallHelper: new AppUninstallHelper(adb),
|
25
26
|
instrumentation: new MonitoredInstrumentation(adb),
|
26
27
|
};
|
@@ -41,7 +42,7 @@ class AndroidEmulator extends RuntimeDriverFactoryAndroid {
|
|
41
42
|
}
|
42
43
|
|
43
44
|
class AndroidAttached extends RuntimeDriverFactoryAndroid {
|
44
|
-
_createDriver(deviceCookie, deps, configs) {
|
45
|
+
_createDriver(deviceCookie, deps, configs) {
|
45
46
|
const props = {
|
46
47
|
adbName: deviceCookie.adbName,
|
47
48
|
};
|
@@ -52,7 +53,7 @@ class AndroidAttached extends RuntimeDriverFactoryAndroid {
|
|
52
53
|
}
|
53
54
|
|
54
55
|
class Genycloud extends RuntimeDriverFactoryAndroid {
|
55
|
-
_createDriver(deviceCookie, deps, configs) {
|
56
|
+
_createDriver(deviceCookie, deps, configs) {
|
56
57
|
const props = {
|
57
58
|
instance: deviceCookie.instance,
|
58
59
|
};
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/* eslint @typescript-eslint/no-unused-vars: ["error", { "args": "none" }] */
|
1
2
|
const RuntimeDevice = require('../RuntimeDevice');
|
2
3
|
|
3
4
|
class RuntimeDeviceFactory {
|
@@ -7,8 +8,8 @@ class RuntimeDeviceFactory {
|
|
7
8
|
return new RuntimeDevice({ ...commonDeps, ...configs }, runtimeDriver);
|
8
9
|
}
|
9
10
|
|
10
|
-
_createDriverDependencies(commonDeps) { }
|
11
|
-
_createDriver(deviceCookie, deps, configs) {}
|
11
|
+
_createDriverDependencies(commonDeps) { }
|
12
|
+
_createDriver(deviceCookie, deps, configs) {}
|
12
13
|
}
|
13
14
|
|
14
15
|
module.exports = RuntimeDeviceFactory;
|
package/src/ios/expectTwo.js
CHANGED
@@ -438,8 +438,7 @@ class Matcher {
|
|
438
438
|
throwMatcherError(matcher);
|
439
439
|
}
|
440
440
|
|
441
|
-
this.and({ predicate: { type: 'ancestor', predicate: matcher.predicate } });
|
442
|
-
return this;
|
441
|
+
return this.and({ predicate: { type: 'ancestor', predicate: matcher.predicate } });
|
443
442
|
}
|
444
443
|
|
445
444
|
withDescendant(matcher) {
|
@@ -447,21 +446,30 @@ class Matcher {
|
|
447
446
|
throwMatcherError(matcher);
|
448
447
|
}
|
449
448
|
|
450
|
-
this.and({ predicate: { type: 'descendant', predicate: matcher.predicate } });
|
451
|
-
return this;
|
449
|
+
return this.and({ predicate: { type: 'descendant', predicate: matcher.predicate } });
|
452
450
|
}
|
453
451
|
|
454
452
|
and(matcher) {
|
455
|
-
const
|
456
|
-
|
457
|
-
|
458
|
-
|
453
|
+
const result = new Matcher();
|
454
|
+
|
455
|
+
result.predicate = {
|
456
|
+
type: 'and',
|
457
|
+
predicates: [
|
458
|
+
...Matcher.predicates(this),
|
459
|
+
...Matcher.predicates(matcher),
|
460
|
+
].map(x => _.cloneDeep(x))
|
461
|
+
};
|
462
|
+
|
463
|
+
return result;
|
464
|
+
}
|
465
|
+
|
466
|
+
/** @private */
|
467
|
+
static *predicates(matcher) {
|
459
468
|
if (matcher.predicate.type === 'and') {
|
460
|
-
|
469
|
+
yield* matcher.predicate.predicates;
|
461
470
|
} else {
|
462
|
-
|
471
|
+
yield matcher.predicate;
|
463
472
|
}
|
464
|
-
return this;
|
465
473
|
}
|
466
474
|
}
|
467
475
|
|
@@ -310,19 +310,19 @@ class DetoxLogger {
|
|
310
310
|
/** @internal */
|
311
311
|
static defaultOptions({ level }) {
|
312
312
|
const ph = level === 'trace' || level === 'debug'
|
313
|
-
? value => require('chalk').grey(value) + ' '
|
314
|
-
: value => require('chalk').grey(value);
|
313
|
+
? value => require('chalk').default.grey(value) + ' '
|
314
|
+
: value => require('chalk').default.grey(value);
|
315
315
|
|
316
316
|
const id = level === 'trace'
|
317
|
-
? value => require('chalk').yellow(`@${value}`)
|
317
|
+
? value => require('chalk').default.yellow(`@${value}`)
|
318
318
|
: undefined;
|
319
319
|
|
320
320
|
const cat = level === 'trace' || level === 'debug'
|
321
|
-
? (value) => require('chalk').yellow(`${value}`.split(',', 1)[0])
|
321
|
+
? (value) => require('chalk').default.yellow(`${value}`.split(',', 1)[0])
|
322
322
|
: undefined;
|
323
323
|
|
324
324
|
const event = level === 'trace' || level === 'debug'
|
325
|
-
? (value) => require('chalk').grey(`:${value}`)
|
325
|
+
? (value) => require('chalk').default.grey(`:${value}`)
|
326
326
|
: undefined;
|
327
327
|
|
328
328
|
const identity = x => x;
|
@@ -41,13 +41,14 @@ class BunyanLogger {
|
|
41
41
|
streamOptions.out = new PassThrough().pipe(process.stderr);
|
42
42
|
}
|
43
43
|
|
44
|
-
this.
|
44
|
+
this._bunyan.addStream({
|
45
45
|
type: 'raw',
|
46
46
|
level: config.level,
|
47
47
|
stream: bds.default(streamOptions),
|
48
|
-
};
|
48
|
+
});
|
49
|
+
|
50
|
+
this._debugStream = _.last(this._bunyan['streams']);
|
49
51
|
|
50
|
-
this._bunyan.addStream(this._debugStream);
|
51
52
|
return this;
|
52
53
|
}
|
53
54
|
|
@@ -93,7 +94,7 @@ class BunyanLogger {
|
|
93
94
|
: bunyanStream.stream;
|
94
95
|
|
95
96
|
/* istanbul ignore next */
|
96
|
-
return stream.fd
|
97
|
+
return stream.fd > 2 && !stream.closed;
|
97
98
|
}
|
98
99
|
};
|
99
100
|
|
@@ -3,9 +3,9 @@ const funpermaproxy = require('funpermaproxy');
|
|
3
3
|
const temporary = require('../artifacts/utils/temporaryPath');
|
4
4
|
const { DetoxRuntimeError } = require('../errors');
|
5
5
|
const { DetoxLogger, DetoxLogFinalizer, installLegacyTracerInterface } = require('../logger');
|
6
|
-
const symbols = require('../symbols');
|
7
6
|
|
8
7
|
const DetoxConstants = require('./DetoxConstants');
|
8
|
+
const symbols = require('./symbols');
|
9
9
|
|
10
10
|
//#region Protected symbols
|
11
11
|
const $cleanup = Symbol('cleanup');
|
@@ -135,7 +135,10 @@ class DetoxContext {
|
|
135
135
|
*/
|
136
136
|
async [symbols.installWorker](opts) {
|
137
137
|
if (opts.global) {
|
138
|
-
opts.global['__detox__'] =
|
138
|
+
opts.global['__detox__'] = {
|
139
|
+
clientApi: require('../../index'),
|
140
|
+
internalsApi: require('../../internals'),
|
141
|
+
};
|
139
142
|
this.log.overrideConsole(opts.global);
|
140
143
|
}
|
141
144
|
|
@@ -6,11 +6,11 @@ const onSignalExit = require('signal-exit');
|
|
6
6
|
const temporary = require('../artifacts/utils/temporaryPath');
|
7
7
|
const { DetoxRuntimeError } = require('../errors');
|
8
8
|
const SessionState = require('../ipc/SessionState');
|
9
|
-
const symbols = require('../symbols');
|
10
9
|
const { getCurrentCommand } = require('../utils/argparse');
|
11
10
|
const uuid = require('../utils/uuid');
|
12
11
|
|
13
12
|
const DetoxContext = require('./DetoxContext');
|
13
|
+
const symbols = require('./symbols');
|
14
14
|
|
15
15
|
// Protected symbols
|
16
16
|
const { $logFinalizer, $restoreSessionState, $sessionState, $worker } = DetoxContext.protected;
|
@@ -135,7 +135,7 @@ class DetoxPrimaryContext extends DetoxContext {
|
|
135
135
|
process.env.DETOX_CONFIG_SNAPSHOT_PATH = this[_sessionFile];
|
136
136
|
this[_lifecycleLogger].trace(`Serialized the session state at: ${this[_sessionFile]}`);
|
137
137
|
|
138
|
-
if (opts.workerId
|
138
|
+
if (opts.workerId !== null) {
|
139
139
|
await this[symbols.installWorker](opts);
|
140
140
|
}
|
141
141
|
}
|
@@ -2,9 +2,9 @@ const fs = require('fs-extra');
|
|
2
2
|
|
3
3
|
const { DetoxInternalError } = require('../errors');
|
4
4
|
const SessionState = require('../ipc/SessionState');
|
5
|
-
const symbols = require('../symbols');
|
6
5
|
|
7
6
|
const DetoxContext = require('./DetoxContext');
|
7
|
+
const symbols = require('./symbols');
|
8
8
|
|
9
9
|
// Protected symbols
|
10
10
|
const { $restoreSessionState, $sessionState, $worker } = DetoxContext.protected;
|
File without changes
|
@@ -3,7 +3,7 @@ const DeviceRegistry = require('../../devices/DeviceRegistry');
|
|
3
3
|
const AAPT = require('../../devices/common/drivers/android/exec/AAPT');
|
4
4
|
const ADB = require('../../devices/common/drivers/android/exec/ADB');
|
5
5
|
const ApkValidator = require('../../devices/common/drivers/android/tools/ApkValidator');
|
6
|
-
const
|
6
|
+
const { TempFileTransfer } = require('../../devices/common/drivers/android/tools/TempFileTransfer');
|
7
7
|
|
8
8
|
const AndroidServiceLocator = {
|
9
9
|
get emulator() {
|
@@ -18,7 +18,7 @@ const AndroidServiceLocator = {
|
|
18
18
|
AndroidServiceLocator.adb = new ADB();
|
19
19
|
AndroidServiceLocator.aapt = new AAPT();
|
20
20
|
AndroidServiceLocator.apkValidator = new ApkValidator(AndroidServiceLocator.aapt);
|
21
|
-
AndroidServiceLocator.
|
21
|
+
AndroidServiceLocator.fileTransfer = new TempFileTransfer(AndroidServiceLocator.adb);
|
22
22
|
AndroidServiceLocator.deviceRegistry = DeviceRegistry.forAndroid();
|
23
23
|
AndroidServiceLocator.devicePathBuilder = new AndroidDevicePathBuilder();
|
24
24
|
|
package/src/utils/argparse.js
CHANGED
@@ -1,15 +1,9 @@
|
|
1
1
|
const path = require('path');
|
2
2
|
|
3
3
|
const _ = require('lodash');
|
4
|
-
const argv = require('minimist')(process.argv.slice(2));
|
5
4
|
|
6
5
|
const { escape } = require('./pipeCommands');
|
7
6
|
|
8
|
-
function getArgValue(key, alias) {
|
9
|
-
const value = _getArgvValue(key, alias);
|
10
|
-
return value === undefined ? getEnvValue(key) : value;
|
11
|
-
}
|
12
|
-
|
13
7
|
function getEnvValue(key) {
|
14
8
|
const envKey = _.findKey(process.env, matchesKey(
|
15
9
|
`DETOX_${_.snakeCase(key)}`.toUpperCase()
|
@@ -23,31 +17,12 @@ function getEnvValue(key) {
|
|
23
17
|
return value;
|
24
18
|
}
|
25
19
|
|
26
|
-
function _getArgvValue(...aliases) {
|
27
|
-
if (!argv) {
|
28
|
-
return;
|
29
|
-
}
|
30
|
-
|
31
|
-
for (const alias of aliases) {
|
32
|
-
if (alias && argv[alias]) {
|
33
|
-
return argv[alias];
|
34
|
-
}
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
20
|
function matchesKey(key) {
|
39
21
|
return /* istanbul ignore next */ process.platform === 'win32'
|
40
22
|
? (value, envKey) => envKey.toUpperCase() === key
|
41
23
|
: (value, envKey) => envKey === key;
|
42
24
|
}
|
43
25
|
|
44
|
-
function getFlag(key) {
|
45
|
-
if (argv && argv[key]) {
|
46
|
-
return true;
|
47
|
-
}
|
48
|
-
return false;
|
49
|
-
}
|
50
|
-
|
51
26
|
const DEFAULT_JOIN_ARGUMENTS_OPTIONS = {
|
52
27
|
prefix: '--',
|
53
28
|
joiner: ' ',
|
@@ -92,9 +67,7 @@ function getCurrentCommand() {
|
|
92
67
|
}
|
93
68
|
|
94
69
|
module.exports = {
|
95
|
-
getArgValue,
|
96
70
|
getEnvValue,
|
97
|
-
getFlag,
|
98
71
|
joinArgs,
|
99
72
|
getCurrentCommand,
|
100
73
|
};
|
@@ -1 +0,0 @@
|
|
1
|
-
ea6186058d129e19888773c331920f40
|
@@ -1 +0,0 @@
|
|
1
|
-
c345c57a09f415daef9a23832141b5af2e18647e
|
@@ -1 +0,0 @@
|
|
1
|
-
de444279abdbbef76d881b8130460cf395410b1076c87fc63e249167138ce04a
|
@@ -1 +0,0 @@
|
|
1
|
-
a336b4f6dfcf0681162be31e004aa9f407876c27ed27d08e1f5261e351782b57e96fcd419a35acd0c45292c5ba11705b595d5f751c2fd548025161c9189ab7ef
|
@@ -1 +0,0 @@
|
|
1
|
-
d1cc2d23f8f9f2b0a4bc726bbb62bfe8
|
@@ -1 +0,0 @@
|
|
1
|
-
0dfff4938eb6cdcbad7c459e00e03e5f74cf63e2
|
@@ -1 +0,0 @@
|
|
1
|
-
57d1a4ca0a22818cacb3fc0612ef95d2f2e2619975c678a96360c58564667d01
|
@@ -1 +0,0 @@
|
|
1
|
-
c3aa7640f8f4d7fe4515fd64f6bf5dd2d086125b50e355fb7b7267c2973a992f159ab5723ffce5d52c90ced2c2e899692fa503804ebec6a28ecf9520c7fb4253
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
9f4287a9139d94b1eb35aef80da68b65
|
@@ -1 +0,0 @@
|
|
1
|
-
dfa1ae19ebfa0add0b2392b3287e5885bd492768
|
@@ -1 +0,0 @@
|
|
1
|
-
a0f706c4d9f8a2c9b33603874ac9c107ad50e4f74177c98f84cd28b2cfe305ec
|
@@ -1 +0,0 @@
|
|
1
|
-
7c5616e2dff6896bccaa3b98bbd0eb4085cfc2493ef4e0f3a6a75d4f6623059ab5ce912d80881eda8daa85f6d94aeecdc4661648f335523eb8e2e90cb47d40ae
|
@@ -1 +0,0 @@
|
|
1
|
-
707f23a53e4df7c923928f8ee9d9532b
|
@@ -1 +0,0 @@
|
|
1
|
-
314e61210f92969bb0b274cbe3e0dac1f04c0bdc
|
@@ -1 +0,0 @@
|
|
1
|
-
65a2960ffce341d2c351849d7d164f6fee2164dee2d3ca6963094444c28e15e5
|
@@ -1 +0,0 @@
|
|
1
|
-
8542c39f3f0b79257898244daaf665d4bca3f445833cbac16c11ba8a858928e38bae73227c2996f12c2ffa744ce350e00e96636a1ff212dfaa6730d6274bb559
|
@@ -1,16 +0,0 @@
|
|
1
|
-
// @ts-nocheck
|
2
|
-
const FileXfer = require('./FileXfer');
|
3
|
-
|
4
|
-
const EMU_TEMP_PATH = '/data/local/tmp';
|
5
|
-
const EMU_TEMP_INSTALL_PATH = `${EMU_TEMP_PATH}/detox`;
|
6
|
-
|
7
|
-
class TempFileXfer extends FileXfer {
|
8
|
-
/**
|
9
|
-
* @param adb { ADB }
|
10
|
-
*/
|
11
|
-
constructor(adb) {
|
12
|
-
super(adb, EMU_TEMP_INSTALL_PATH);
|
13
|
-
}
|
14
|
-
}
|
15
|
-
|
16
|
-
module.exports = TempFileXfer;
|
package/src/realms/index.js
DELETED