detox 20.22.0-smoke.0 → 20.22.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.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar → 20.22.0/detox-20.22.0-sources.jar} +0 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox/{20.22.0-smoke.0/detox-20.22.0-smoke.0.pom → 20.22.0/detox-20.22.0.pom} +1 -1
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0.pom.md5 +1 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.0.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox/20.22.0/detox-20.22.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-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0-sources.jar → 20.22.0/detox-legacy-20.22.0-sources.jar} +0 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0-sources.jar.md5 +1 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0-sources.jar.sha1 +1 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0-sources.jar.sha256 +1 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0-sources.jar.sha512 +1 -0
- package/Detox-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom → 20.22.0/detox-legacy-20.22.0.pom} +1 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0.pom.md5 +1 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0.pom.sha1 +1 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0.pom.sha256 +1 -0
- package/Detox-android/com/wix/detox-legacy/20.22.0/detox-legacy-20.22.0.pom.sha512 +1 -0
- package/Detox-android/com/wix/detox-legacy/maven-metadata.xml +4 -4
- package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.md5 +1 -1
- package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.sha1 +1 -1
- package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.sha256 +1 -1
- package/Detox-android/com/wix/detox-legacy/maven-metadata.xml.sha512 +1 -1
- package/Detox-ios-framework.tbz +0 -0
- package/Detox-ios-src.tbz +0 -0
- package/Detox-ios-xcuitest.tbz +0 -0
- package/detox.d.ts +78 -3
- package/globals.d.ts +2 -0
- package/local-cli/build-framework-cache.js +19 -11
- package/local-cli/clean-framework-cache.js +19 -14
- package/local-cli/rebuild-framework-cache.js +20 -16
- package/local-cli/utils/frameworkUtils.js +77 -0
- package/package.json +4 -4
- package/scripts/build_framework.ios.sh +26 -60
- package/scripts/build_local_framework.ios.sh +62 -0
- package/scripts/build_local_xcuitest.ios.sh +53 -0
- package/scripts/build_xcuitest.ios.sh +18 -0
- package/scripts/pack_ios.sh +18 -9
- package/scripts/postinstall.js +11 -4
- package/src/android/AndroidExpect.js +5 -0
- package/src/android/matchers/index.js +7 -0
- package/src/client/Client.js +0 -4
- package/src/client/actions/actions.js +0 -19
- package/src/devices/runtime/RuntimeDevice.js +0 -5
- package/src/devices/runtime/drivers/DeviceDriverBase.js +0 -4
- package/src/devices/runtime/drivers/ios/SimulatorDriver.js +0 -11
- package/src/ios/XCUITestRunner.js +52 -0
- package/src/ios/expectTwo.js +49 -28
- package/src/ios/system.js +124 -0
- package/src/ios/web.js +3 -4
- package/src/matchers/factories/index.js +15 -8
- package/src/utils/assertArgument.js +11 -2
- package/src/utils/environment.js +34 -14
- package/src/utils/invocationTraceDescriptions.js +4 -0
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0.pom.sha512 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0-sources.jar.md5 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0-sources.jar.sha1 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0-sources.jar.sha256 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0-sources.jar.sha512 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.md5 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.sha1 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.sha256 +0 -1
- package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.sha512 +0 -1
- package/Detox-ios.tbz +0 -0
- package/scripts/build_universal_framework.sh +0 -14
- package/scripts/build_universal_framework_legacy.sh +0 -76
- package/scripts/build_universal_framework_modern.sh +0 -28
- /package/Detox-android/com/wix/detox/{20.22.0-smoke.0/detox-20.22.0-smoke.0.aar → 20.22.0/detox-20.22.0.aar} +0 -0
- /package/Detox-android/com/wix/detox/{20.22.0-smoke.0/detox-20.22.0-smoke.0.aar.md5 → 20.22.0/detox-20.22.0.aar.md5} +0 -0
- /package/Detox-android/com/wix/detox/{20.22.0-smoke.0/detox-20.22.0-smoke.0.aar.sha1 → 20.22.0/detox-20.22.0.aar.sha1} +0 -0
- /package/Detox-android/com/wix/detox/{20.22.0-smoke.0/detox-20.22.0-smoke.0.aar.sha256 → 20.22.0/detox-20.22.0.aar.sha256} +0 -0
- /package/Detox-android/com/wix/detox/{20.22.0-smoke.0/detox-20.22.0-smoke.0.aar.sha512 → 20.22.0/detox-20.22.0.aar.sha512} +0 -0
- /package/Detox-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.aar → 20.22.0/detox-legacy-20.22.0.aar} +0 -0
- /package/Detox-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.aar.md5 → 20.22.0/detox-legacy-20.22.0.aar.md5} +0 -0
- /package/Detox-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.aar.sha1 → 20.22.0/detox-legacy-20.22.0.aar.sha1} +0 -0
- /package/Detox-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.aar.sha256 → 20.22.0/detox-legacy-20.22.0.aar.sha256} +0 -0
- /package/Detox-android/com/wix/detox-legacy/{20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.aar.sha512 → 20.22.0/detox-legacy-20.22.0.aar.sha512} +0 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
const { DetoxRuntimeError } = require('../errors');
|
2
|
+
const { assertTraceDescription } = require('../utils/assertArgument');
|
3
|
+
const { systemActionDescription, expectDescription } = require('../utils/invocationTraceDescriptions');
|
4
|
+
const log = require('../utils/logger').child({ cat: 'ws-client, ws' });
|
5
|
+
const traceInvocationCall = require('../utils/traceInvocationCall').bind(null, log);
|
6
|
+
|
7
|
+
|
8
|
+
class SystemExpect {
|
9
|
+
constructor(xcuitestRunner, element) {
|
10
|
+
this._xcuitestRunner = xcuitestRunner;
|
11
|
+
this.element = element;
|
12
|
+
this.modifiers = [];
|
13
|
+
}
|
14
|
+
|
15
|
+
toExist() {
|
16
|
+
const traceDescription = expectDescription.toExist();
|
17
|
+
return this.expect('toExist', traceDescription);
|
18
|
+
}
|
19
|
+
|
20
|
+
get not() {
|
21
|
+
this.modifiers.push('not');
|
22
|
+
return this;
|
23
|
+
}
|
24
|
+
|
25
|
+
createInvocation(systemExpectation) {
|
26
|
+
return {
|
27
|
+
type: 'systemExpectation',
|
28
|
+
systemPredicate: this.element.matcher.predicate,
|
29
|
+
...(this.element.index !== undefined && { systemAtIndex: this.element.index }),
|
30
|
+
...(this.modifiers.length !== 0 && { systemModifiers: this.modifiers }),
|
31
|
+
systemExpectation
|
32
|
+
};
|
33
|
+
}
|
34
|
+
|
35
|
+
expect(expectation, traceDescription) {
|
36
|
+
assertTraceDescription(traceDescription);
|
37
|
+
|
38
|
+
const invocation = this.createInvocation(expectation);
|
39
|
+
traceDescription = expectDescription.full(traceDescription, this.modifiers.includes('not'));
|
40
|
+
return _executeInvocation(this._xcuitestRunner, invocation, traceDescription);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
class SystemElement {
|
45
|
+
constructor(xcuitestRunner, matcher, index) {
|
46
|
+
this._xcuitestRunner = xcuitestRunner;
|
47
|
+
this.matcher = matcher;
|
48
|
+
this.index = index;
|
49
|
+
}
|
50
|
+
|
51
|
+
atIndex(index) {
|
52
|
+
if (typeof index !== 'number' || index < 0) throw new DetoxRuntimeError(`index should be an integer, got ${index} (${typeof index})`);
|
53
|
+
this.index = index;
|
54
|
+
return this;
|
55
|
+
}
|
56
|
+
|
57
|
+
tap() {
|
58
|
+
const traceDescription = systemActionDescription.tap();
|
59
|
+
return this.withAction('tap', traceDescription);
|
60
|
+
}
|
61
|
+
|
62
|
+
withAction(action, traceDescription) {
|
63
|
+
assertTraceDescription(traceDescription);
|
64
|
+
|
65
|
+
const invocation = {
|
66
|
+
type: 'systemAction',
|
67
|
+
systemPredicate: this.matcher.predicate,
|
68
|
+
...(this.index !== undefined && { systemAtIndex: this.index }),
|
69
|
+
systemAction: action
|
70
|
+
};
|
71
|
+
traceDescription = systemActionDescription.full(traceDescription);
|
72
|
+
return _executeInvocation(this._xcuitestRunner, invocation, traceDescription);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
class SystemElementMatcher {
|
77
|
+
label(label) {
|
78
|
+
if (typeof label !== 'string') throw new DetoxRuntimeError('label should be a string, but got ' + (label + (' (' + typeof label + ')')));
|
79
|
+
this.predicate = { type: 'label', value: label.toString() };
|
80
|
+
return this;
|
81
|
+
}
|
82
|
+
|
83
|
+
type(type) {
|
84
|
+
if (typeof type !== 'string') throw new DetoxRuntimeError('type should be a string, but got ' + (type + (' (' + typeof type + ')')));
|
85
|
+
this.predicate = { type: 'type', value: type.toString() };
|
86
|
+
return this;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
function systemMatcher() {
|
91
|
+
return new SystemElementMatcher();
|
92
|
+
}
|
93
|
+
|
94
|
+
function systemElement(xcuitestRunner, matcher) {
|
95
|
+
if (!(matcher instanceof SystemElementMatcher)) {
|
96
|
+
throwSystemMatcherError(matcher);
|
97
|
+
}
|
98
|
+
|
99
|
+
return new SystemElement(xcuitestRunner, matcher);
|
100
|
+
}
|
101
|
+
|
102
|
+
function throwSystemMatcherError(param) {
|
103
|
+
const paramDescription = JSON.stringify(param);
|
104
|
+
throw new DetoxRuntimeError(`${paramDescription} is not a Detox system matcher. More about system matchers here: https://wix.github.io/Detox/docs/api/system`);
|
105
|
+
}
|
106
|
+
|
107
|
+
function systemExpect(xcuitestRunner, element) {
|
108
|
+
return new SystemExpect(xcuitestRunner, element);
|
109
|
+
}
|
110
|
+
|
111
|
+
function _executeInvocation(xcuitestRunner, invocation, traceDescription) {
|
112
|
+
return traceInvocationCall(traceDescription, invocation, xcuitestRunner.execute(invocation));
|
113
|
+
}
|
114
|
+
|
115
|
+
function isSystemElement(element) {
|
116
|
+
return element instanceof SystemElement;
|
117
|
+
}
|
118
|
+
|
119
|
+
module.exports = {
|
120
|
+
systemMatcher,
|
121
|
+
systemElement,
|
122
|
+
systemExpect,
|
123
|
+
isSystemElement
|
124
|
+
};
|
package/src/ios/web.js
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
const assert = require('assert');
|
2
|
-
|
3
1
|
const _ = require('lodash');
|
4
2
|
|
5
3
|
const { DetoxRuntimeError } = require('../errors');
|
4
|
+
const { assertTraceDescription } = require('../utils/assertArgument');
|
6
5
|
const { webViewActionDescription, expectDescription } = require('../utils/invocationTraceDescriptions');
|
7
6
|
const log = require('../utils/logger').child({ cat: 'ws-client, ws' });
|
8
7
|
const traceInvocationCall = require('../utils/traceInvocationCall').bind(null, log);
|
@@ -48,7 +47,7 @@ class WebExpect {
|
|
48
47
|
}
|
49
48
|
|
50
49
|
expect(expectation, traceDescription, ...params) {
|
51
|
-
|
50
|
+
assertTraceDescription(traceDescription);
|
52
51
|
|
53
52
|
const invocation = this.createInvocation(expectation, ...params);
|
54
53
|
traceDescription = expectDescription.full(traceDescription, this.modifiers.includes('not'));
|
@@ -170,7 +169,7 @@ class WebElement {
|
|
170
169
|
}
|
171
170
|
|
172
171
|
withAction(action, traceDescription, ...params) {
|
173
|
-
|
172
|
+
assertTraceDescription(traceDescription);
|
174
173
|
|
175
174
|
const invocation = {
|
176
175
|
type: 'webAction',
|
@@ -12,19 +12,20 @@ class Android extends MatchersFactory {
|
|
12
12
|
}
|
13
13
|
|
14
14
|
class Ios extends MatchersFactory {
|
15
|
-
createMatchers({ invocationManager, eventEmitter }) {
|
15
|
+
createMatchers({ invocationManager, runtimeDevice, eventEmitter }) {
|
16
16
|
const IosExpect = require('../../ios/expectTwo');
|
17
|
-
|
17
|
+
const XCUITestRunner = require('../../ios/XCUITestRunner');
|
18
|
+
const xcuitestRunner = new XCUITestRunner({ simulatorId: runtimeDevice.id });
|
19
|
+
|
20
|
+
return new IosExpect({
|
21
|
+
invocationManager,
|
22
|
+
xcuitestRunner,
|
23
|
+
emitter: eventEmitter
|
24
|
+
});
|
18
25
|
}
|
19
26
|
}
|
20
27
|
|
21
28
|
class External extends MatchersFactory {
|
22
|
-
static validateModule(module, path) {
|
23
|
-
if (!module.ExpectClass) {
|
24
|
-
throw new DetoxRuntimeError(`The custom driver at '${path}' does not export the ExpectClass property`);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
|
28
29
|
constructor(module, path) {
|
29
30
|
super();
|
30
31
|
External.validateModule(module, path);
|
@@ -32,6 +33,12 @@ class External extends MatchersFactory {
|
|
32
33
|
this._module = module;
|
33
34
|
}
|
34
35
|
|
36
|
+
static validateModule(module, path) {
|
37
|
+
if (!module.ExpectClass) {
|
38
|
+
throw new DetoxRuntimeError(`The custom driver at '${path}' does not export the ExpectClass property`);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
35
42
|
createMatchers(deps) {
|
36
43
|
return new this._module.ExpectClass(deps);
|
37
44
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
const DetoxRuntimeError = require('../errors
|
1
|
+
const { DetoxInternalError, DetoxRuntimeError } = require('../errors');
|
2
2
|
|
3
3
|
function firstEntry(obj) {
|
4
4
|
return Object.entries(obj)[0];
|
@@ -61,6 +61,14 @@ function assertUndefined(arg) {
|
|
61
61
|
throw new DetoxRuntimeError(`${key} expected to be undefined, but got ${value} (${typeof value})`);
|
62
62
|
}
|
63
63
|
|
64
|
+
function assertTraceDescription(arg) {
|
65
|
+
if (arg !== undefined) {
|
66
|
+
return true;
|
67
|
+
}
|
68
|
+
|
69
|
+
throw new DetoxInternalError(`traceDescription expected to be defined, but got undefined`);
|
70
|
+
}
|
71
|
+
|
64
72
|
module.exports = {
|
65
73
|
assertEnum,
|
66
74
|
assertNormalized,
|
@@ -68,5 +76,6 @@ module.exports = {
|
|
68
76
|
assertString,
|
69
77
|
assertDuration,
|
70
78
|
assertPoint,
|
71
|
-
assertUndefined
|
79
|
+
assertUndefined,
|
80
|
+
assertTraceDescription
|
72
81
|
};
|
package/src/utils/environment.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
const crypto = require('crypto');
|
1
2
|
const fs = require('fs');
|
2
3
|
const os = require('os');
|
3
4
|
const path = require('path');
|
@@ -171,24 +172,40 @@ function throwMissingGmsaasError() {
|
|
171
172
|
throw new DetoxRuntimeError(`Failed to locate Genymotion's gmsaas executable. Please add it to your $PATH variable!\nPATH is currently set to: ${process.env.PATH}`);
|
172
173
|
}
|
173
174
|
|
174
|
-
|
175
|
+
const getDetoxVersion = _.once(() => {
|
175
176
|
return require(path.join(__dirname, '../../package.json')).version;
|
176
|
-
}
|
177
|
+
});
|
177
178
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
_iosFrameworkPath = _doGetFrameworkPath();
|
182
|
-
}
|
179
|
+
const getBuildFolderName = _.once(async () => {
|
180
|
+
const detoxVersion = getDetoxVersion();
|
181
|
+
const xcodeVersion = await exec('xcodebuild -version').then(result => result.stdout.trim());
|
183
182
|
|
184
|
-
return
|
185
|
-
}
|
183
|
+
return crypto.createHash('sha1')
|
184
|
+
.update(`${detoxVersion}\n${xcodeVersion}\n`)
|
185
|
+
.digest('hex');
|
186
|
+
});
|
186
187
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
}
|
188
|
+
const getFrameworkDirPath = `${DETOX_LIBRARY_ROOT_PATH}/ios/framework`;
|
189
|
+
|
190
|
+
const getFrameworkPath = _.once(async () => {
|
191
|
+
const buildFolder = await getBuildFolderName();
|
192
|
+
return `${getFrameworkDirPath}/${buildFolder}/Detox.framework`;
|
193
|
+
});
|
194
|
+
|
195
|
+
const getXCUITestRunnerDirPath = `${DETOX_LIBRARY_ROOT_PATH}/ios/xcuitest-runner`;
|
196
|
+
|
197
|
+
const getXCUITestRunnerPath = _.once(async () => {
|
198
|
+
const buildFolder = await getBuildFolderName();
|
199
|
+
const derivedDataPath = `${getXCUITestRunnerDirPath}/${buildFolder}`;
|
200
|
+
const xctestrunPath = await exec(`find ${derivedDataPath} -name "*.xctestrun" -print -quit`)
|
201
|
+
.then(result => result.stdout.trim());
|
202
|
+
|
203
|
+
if (!xctestrunPath) {
|
204
|
+
throw new DetoxRuntimeError(`Failed to find .xctestrun file in ${derivedDataPath}`);
|
205
|
+
}
|
206
|
+
|
207
|
+
return xctestrunPath;
|
208
|
+
});
|
192
209
|
|
193
210
|
function getDetoxLibraryRootPath() {
|
194
211
|
return DETOX_LIBRARY_ROOT_PATH;
|
@@ -219,7 +236,10 @@ module.exports = {
|
|
219
236
|
getAndroidSdkManagerPath,
|
220
237
|
getGmsaasPath,
|
221
238
|
getDetoxVersion,
|
239
|
+
getFrameworkDirPath,
|
222
240
|
getFrameworkPath,
|
241
|
+
getXCUITestRunnerDirPath,
|
242
|
+
getXCUITestRunnerPath,
|
223
243
|
getAndroidSDKPath,
|
224
244
|
getAndroidEmulatorPath,
|
225
245
|
getDetoxLibraryRootPath,
|
@@ -43,6 +43,10 @@ module.exports = {
|
|
43
43
|
getTitle: () => 'get title',
|
44
44
|
full: (actionDescription) => `perform web view action: ${actionDescription}`
|
45
45
|
},
|
46
|
+
systemActionDescription: {
|
47
|
+
tap: () => `tap`,
|
48
|
+
full: (actionDescription) => `perform system action: ${actionDescription}`
|
49
|
+
},
|
46
50
|
expectDescription: {
|
47
51
|
waitFor: (actionDescription) => `wait for expectation while ${actionDescription}`,
|
48
52
|
waitForWithTimeout: (expectDescription, timeout) => `${expectDescription} with timeout (${timeout} ms)`,
|
@@ -1 +0,0 @@
|
|
1
|
-
c4f4ccfd2fcba821086c7873260e855f
|
@@ -1 +0,0 @@
|
|
1
|
-
592e743660ec3256a4fbf492f9b426522512f62b
|
package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar.sha256
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
d88429a82475ff09df92573cf92a97b2787c7f62d371faafa004a39308f08b3f
|
package/Detox-android/com/wix/detox/20.22.0-smoke.0/detox-20.22.0-smoke.0-sources.jar.sha512
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
cc8a61587f9e6c0ac85925cfbf3bb13ef42e2051f40675c88d80a7de82dedcc60fc46633575aef42721876eaad742bb107bd7e0e9f532903db9adc0a83115031
|
@@ -1 +0,0 @@
|
|
1
|
-
08b5bbe3db6b9be9616306b3570f7cb3
|
@@ -1 +0,0 @@
|
|
1
|
-
dad3ec9cb42187fbe4f7a9b51fd24dd23fa45530
|
@@ -1 +0,0 @@
|
|
1
|
-
c7190cb71ca0226b2f23abf05f3522989f319f68f8300c17bf31eb547ded8b66
|
@@ -1 +0,0 @@
|
|
1
|
-
f0b4f5f51b5dec733b11d1af4b0bc77017895bbb17833f50a6640df7882f605dbc18569494d9aaece54270cf7fe87bf7060000d4802349d8e109b188bdd730b4
|
@@ -1 +0,0 @@
|
|
1
|
-
49feaf179a792588002f3946ebac055e
|
@@ -1 +0,0 @@
|
|
1
|
-
9505116d7cfb3b316e86ac32d28d903d35627852
|
@@ -1 +0,0 @@
|
|
1
|
-
441dc5808b355d05ab08c63bde1d1a8fbb908fb7e268b3ea17d03cbb391b1ef4
|
@@ -1 +0,0 @@
|
|
1
|
-
acbb6862e83102362156aaa16d0c7b5daa77dced0ad2a4bc100b5efcb1a3418b6f6f1c9bf60d255c9e215192aa2141fcd0d0633e620e7de724d1452850348141
|
package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.md5
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
bff85a185e636b4f4b6f382af440ea16
|
package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.sha1
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
d3d2aa3a8d5cadc566cf10a7da2a2ad698fd6f7d
|
package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.sha256
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
de03cc9848d2a6c0270536ff68c49f60c7bb654cd88ffe99f8e37a87d361350a
|
package/Detox-android/com/wix/detox-legacy/20.22.0-smoke.0/detox-legacy-20.22.0-smoke.0.pom.sha512
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
22870bcbdaa0a9c7a061947742541588a41bd20753006af39eceb089882b57fcea144874247c16320c8d9c096db043f666e862f93732eb898db26e9024d5bc8f
|
package/Detox-ios.tbz
DELETED
Binary file
|
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/bin/bash -e
|
2
|
-
|
3
|
-
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
4
|
-
|
5
|
-
XCODEVERSION=$(xcodebuild -version | grep -oEi "([0-9]*(\.[0-9]*)+)")
|
6
|
-
if [ "${XCODEVERSION}" == "`echo -e "${XCODEVERSION}\n12.0" | sort --version-sort -r | head -n1`" ]; then
|
7
|
-
echo "Xcode 12 and above; using modern script for building the framework to support Apple Silicon"
|
8
|
-
FRAMEWORK_SCRIPT="build_universal_framework_modern.sh"
|
9
|
-
else
|
10
|
-
echo "Xcode 11 and below; using legacy script for building"
|
11
|
-
FRAMEWORK_SCRIPT="build_universal_framework_legacy.sh"
|
12
|
-
fi
|
13
|
-
|
14
|
-
"${SCRIPTPATH}/${FRAMEWORK_SCRIPT}" "$@"
|
@@ -1,76 +0,0 @@
|
|
1
|
-
#!/bin/bash -e
|
2
|
-
|
3
|
-
PROJECT=$1
|
4
|
-
OUTPUT_DIR=$2
|
5
|
-
CONFIGURATION=Release
|
6
|
-
PROJECT_NAME=Detox
|
7
|
-
|
8
|
-
set -e
|
9
|
-
|
10
|
-
function remove_arch() {
|
11
|
-
lipo -create "${1}" "${2}" -output "${3}"
|
12
|
-
}
|
13
|
-
|
14
|
-
# Make sure the output directory exists
|
15
|
-
|
16
|
-
mkdir -p "${OUTPUT_DIR}"
|
17
|
-
rm -fr "${OUTPUT_DIR}/${PROJECT_NAME}.framework"
|
18
|
-
|
19
|
-
TEMP_DIR=$(mktemp -d "$TMPDIR"DetoxBuild.XXXX)
|
20
|
-
echo TEMP_DIR = "${TEMP_DIR}"
|
21
|
-
|
22
|
-
# Step 0. Xcode version
|
23
|
-
|
24
|
-
XCODEVERSION=$(xcodebuild -version | grep -oEi "([0-9]*(\.[0-9]*)+)")
|
25
|
-
echo "Xcode ${XCODEVERSION}"
|
26
|
-
USE_NEW_BUILD_SYSTEM="YES"
|
27
|
-
if [ "${XCODEVERSION}" != "`echo -e "${XCODEVERSION}\n11.0" | sort --version-sort -r | head -n1`" ]; then
|
28
|
-
USE_NEW_BUILD_SYSTEM="NO"
|
29
|
-
fi
|
30
|
-
echo "Using -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM}"
|
31
|
-
|
32
|
-
# Step 1. Build Device and Simulator versions
|
33
|
-
|
34
|
-
BUILD_IOS=`xcodebuild -project "${PROJECT}" -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM} -scheme Detox -configuration "${CONFIGURATION}" -arch arm64 -sdk iphoneos ONLY_ACTIVE_ARCH=NO VALID_ARCHS=arm64 -showBuildSettings | awk -F= '/TARGET_BUILD_DIR/{x=$NF; gsub(/^[ \t]+|[ \t]+$/,"",x); print x}'`
|
35
|
-
BUILD_SIM=`xcodebuild -project "${PROJECT}" -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM} -scheme Detox -configuration "${CONFIGURATION}" -arch x86_64 -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO VALID_ARCHS=x86_64 -showBuildSettings | awk -F= '/TARGET_BUILD_DIR/{x=$NF; gsub(/^[ \t]+|[ \t]+$/,"",x); print x}'`
|
36
|
-
|
37
|
-
echo ${BUILD_IOS}
|
38
|
-
echo ${BUILD_SIM}
|
39
|
-
|
40
|
-
xcodebuild -project "${PROJECT}" -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM} -scheme Detox -configuration "${CONFIGURATION}" -arch arm64 -sdk iphoneos ONLY_ACTIVE_ARCH=NO clean build VALID_ARCHS=arm64 -quiet
|
41
|
-
xcodebuild -project "${PROJECT}" -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM} -scheme Detox -configuration "${CONFIGURATION}" -arch x86_64 -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO build VALID_ARCHS=x86_64 -quiet
|
42
|
-
|
43
|
-
# Step 2. Copy the framework structure (from iphoneos build) to the universal folder
|
44
|
-
|
45
|
-
cp -fR "${BUILD_IOS}/${PROJECT_NAME}.framework" "${TEMP_DIR}/"
|
46
|
-
|
47
|
-
# Step 3. Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory
|
48
|
-
|
49
|
-
SIMULATOR_SWIFT_MODULES_DIR="${BUILD_SIM}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule/."
|
50
|
-
if [ -d "${SIMULATOR_SWIFT_MODULES_DIR}" ]; then
|
51
|
-
cp -fR "${SIMULATOR_SWIFT_MODULES_DIR}" "${TEMP_DIR}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule"
|
52
|
-
fi
|
53
|
-
|
54
|
-
# Step 4. Create universal binary file using lipo and place the combined executable in the copied framework directory
|
55
|
-
|
56
|
-
remove_arch "${BUILD_SIM}/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_IOS}/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${TEMP_DIR}/${PROJECT_NAME}.framework/${PROJECT_NAME}"
|
57
|
-
|
58
|
-
# Step 5. Create universal binaries for embedded frameworks
|
59
|
-
|
60
|
-
for SUB_FRAMEWORK in $( ls "${TEMP_DIR}/${PROJECT_NAME}.framework/Frameworks" ); do
|
61
|
-
if [ -d "${TEMP_DIR}/${PROJECT_NAME}.framework/Frameworks/$SUB_FRAMEWORK" ]; then
|
62
|
-
echo "Processing ${SUB_FRAMEWORK} as a dir"
|
63
|
-
BINARY_NAME="${SUB_FRAMEWORK%.*}"
|
64
|
-
|
65
|
-
remove_arch "${BUILD_SIM}/${PROJECT_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}" "${BUILD_IOS}/${PROJECT_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}" "${TEMP_DIR}/${PROJECT_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}"
|
66
|
-
|
67
|
-
else
|
68
|
-
echo "Processing ${SUB_FRAMEWORK} as a file"
|
69
|
-
|
70
|
-
remove_arch "${BUILD_SIM}/${PROJECT_NAME}.framework/Frameworks/${SUB_FRAMEWORK}" "${BUILD_IOS}/${PROJECT_NAME}.framework/Frameworks/${SUB_FRAMEWORK}" "${TEMP_DIR}/${PROJECT_NAME}.framework/Frameworks/${SUB_FRAMEWORK}"
|
71
|
-
|
72
|
-
fi
|
73
|
-
done
|
74
|
-
|
75
|
-
mv "${TEMP_DIR}/${PROJECT_NAME}.framework" "${OUTPUT_DIR}"/
|
76
|
-
rm -fr "${TEMP_DIR}"
|
@@ -1,28 +0,0 @@
|
|
1
|
-
#!/bin/bash -e
|
2
|
-
|
3
|
-
PROJECT=$1
|
4
|
-
OUTPUT_DIR=$2
|
5
|
-
CONFIGURATION=Release
|
6
|
-
PROJECT_NAME=Detox
|
7
|
-
|
8
|
-
# Make sure the output directory exists
|
9
|
-
|
10
|
-
mkdir -p "${OUTPUT_DIR}"
|
11
|
-
rm -fr "${OUTPUT_DIR}/${PROJECT_NAME}.framework"
|
12
|
-
|
13
|
-
# Step 0. Xcode version
|
14
|
-
|
15
|
-
USE_NEW_BUILD_SYSTEM="YES"
|
16
|
-
echo "Using -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM}"
|
17
|
-
|
18
|
-
# Step 1. Build Device and Simulator versions
|
19
|
-
|
20
|
-
BUILD_SIM=`xcodebuild -project "${PROJECT}" -scheme "Detox" -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM} -configuration "${CONFIGURATION}" -sdk iphonesimulator -destination "generic/platform=iOS Simulator" build -showBuildSettings | awk -F= '/TARGET_BUILD_DIR/{x=$NF; gsub(/^[ \t]+|[ \t]+$/,"",x); print x}'`
|
21
|
-
|
22
|
-
echo ${BUILD_SIM}
|
23
|
-
|
24
|
-
xcodebuild -project "${PROJECT}" -scheme "Detox" -UseNewBuildSystem=${USE_NEW_BUILD_SYSTEM} -configuration "${CONFIGURATION}" -sdk iphonesimulator -destination "generic/platform=iOS Simulator" build -quiet
|
25
|
-
|
26
|
-
# Step 2. Copy the framework to output folder
|
27
|
-
|
28
|
-
cp -fR "${BUILD_SIM}/${PROJECT_NAME}.framework" "${OUTPUT_DIR}"/
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|