@testim/testim-cli 3.203.0 → 3.207.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +9 -0
- package/commons/featureFlags.js +2 -1
- package/commons/getSessionPlayerRequire.js +22 -2
- package/lib/coralogix-winston.transport.js +13 -20
- package/npm-shrinkwrap.json +29 -37
- package/package.json +2 -2
- package/player/stepActions/pixelValidationStepAction.js +4 -2
- package/player/utils/eyeSdkService.js +11 -10
- package/runners/TestPlanRunner.js +4 -10
- package/testRunStatus.js +7 -3
package/cli.js
CHANGED
|
@@ -34,6 +34,15 @@ async function checkNodeVersion() {
|
|
|
34
34
|
if (!semver.satisfies(process.version, version)) {
|
|
35
35
|
throw new ArgError(`Required node version ${version} not satisfied with current version ${process.version}`);
|
|
36
36
|
}
|
|
37
|
+
|
|
38
|
+
if (process.version.startsWith('v10.')) {
|
|
39
|
+
// give one day grace period.
|
|
40
|
+
const limitDate = new Date('2021-12-13T00:00:00.000z');
|
|
41
|
+
if (limitDate < new Date()) {
|
|
42
|
+
throw new ArgError('Node.js v10 is no longer supported, please upgrade to Node.js 12, 14 or 16.');
|
|
43
|
+
}
|
|
44
|
+
console.warn('Node.js v10 is no longer supported by the Testim CLI. Please upgrade to Node.js 12, 14 or 16.');
|
|
45
|
+
}
|
|
37
46
|
}
|
|
38
47
|
|
|
39
48
|
function main() {
|
package/commons/featureFlags.js
CHANGED
|
@@ -48,13 +48,14 @@ class FeatureFlagsService {
|
|
|
48
48
|
useJsInputCodeInSafari: new Rox.Flag(),
|
|
49
49
|
autoSaveDownloadFileFireFox: new Rox.Flag(true),
|
|
50
50
|
safariSelectOptionDispatchEventOnSelectElement: new Rox.Flag(true),
|
|
51
|
-
experimentalPreCodeCompilation: new Rox.Flag(
|
|
51
|
+
experimentalPreCodeCompilation: new Rox.Flag(true),
|
|
52
52
|
/** Enables using top level await inside custom actions for non-IE browsers */
|
|
53
53
|
experimentalAsyncCustomCode: new Rox.Flag(),
|
|
54
54
|
useSameBrowserForMultiTests: new LabFeatureFlag('labs'),
|
|
55
55
|
highSpeedMode: new LabFeatureFlag(),
|
|
56
56
|
usePortedHtml5DragDrop: new Rox.Flag(),
|
|
57
57
|
applitoolsNewIntegration: new Rox.Flag(),
|
|
58
|
+
testNamesToBeforeSuiteHook: new Rox.Flag(),
|
|
58
59
|
};
|
|
59
60
|
Rox.register('default', this.flags);
|
|
60
61
|
}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
3
|
const perf = require('./performance-logger');
|
|
4
4
|
|
|
5
5
|
perf.log('getSessionPlayerRequire start');
|
|
6
6
|
const getSessionPlayerFolder = require('./prepareRunnerAndTestimStartUtils').getSessionPlayerFolder;
|
|
7
|
+
|
|
7
8
|
const testimAppDataFolder = getSessionPlayerFolder();
|
|
8
|
-
|
|
9
|
+
/**
|
|
10
|
+
* @type {{
|
|
11
|
+
sessionPlayer: typeof import('../../../clickim/src/background/session/sessionPlayer').SessionPlayer;
|
|
12
|
+
utils: typeof import('../../../clickim/src/lib/utils').utils;
|
|
13
|
+
commonConstants: typeof import('../../../clickim/src/common/commonConstantsStrong');
|
|
14
|
+
locatorBuilderUtils: import('../../../clickim/src/locators/locatorBuilderUtils')['locatorBuilderUtils'];
|
|
15
|
+
assetService: import('../../../clickim/src/background/assetService')['assetService'];
|
|
16
|
+
localAssetService: import('../../../clickim/src/background/localAssetService');
|
|
17
|
+
urlUtils: import('../../../clickim/src/background/portMatch/urlUtils');
|
|
18
|
+
positionUtils: import('../../../clickim/src/lib/positionUtils');
|
|
19
|
+
visibilityUtils: import('../../../clickim/src/background/visibilityUtils');
|
|
20
|
+
apiCall: import('../../../clickim/src/common/playback/apiCall')['apiCall'];
|
|
21
|
+
stepParamBuilder: typeof import('../../../clickim/src/common/stepParamsBuilder').StepParamsBuilder;
|
|
22
|
+
stepParamExpressionEvaluator: import('../../../clickim/src/common/stepParamExpressionEvaluator');
|
|
23
|
+
manifestVersion: string | undefined;
|
|
24
|
+
EyeSdkBuilder: typeof import('../../../clickim/src/background/eyeSdkBuilder').EyeSdkBuilder
|
|
25
|
+
}}
|
|
26
|
+
*/
|
|
27
|
+
const sessionPlayer = require(require('path').join(testimAppDataFolder, 'sessionPlayer.js')); // eslint-disable-line import/no-dynamic-require
|
|
28
|
+
|
|
9
29
|
module.exports = sessionPlayer;
|
|
10
30
|
perf.log('getSessionPlayerRequire end');
|
|
@@ -15,8 +15,9 @@ const severityMap = {
|
|
|
15
15
|
debug: Severity.debug,
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
const errorProps = ['err', 'error', 'reason', 'e'];
|
|
19
|
+
|
|
18
20
|
class CoralogixTransport extends TransportStream {
|
|
19
|
-
static options;
|
|
20
21
|
constructor(options) {
|
|
21
22
|
options = Object.assign({}, CoralogixTransport.options, options);
|
|
22
23
|
super(options);
|
|
@@ -59,26 +60,18 @@ class CoralogixTransport extends TransportStream {
|
|
|
59
60
|
meta.msg = `${msg}\n${meta.msg}`;
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
if (infoMeta.err instanceof Error) {
|
|
63
|
-
meta.err = {
|
|
64
|
-
message: infoMeta.err.message,
|
|
65
|
-
stack: infoMeta.err.stack,
|
|
66
|
-
name: infoMeta.err.name,
|
|
67
|
-
type: infoMeta.err.type,
|
|
68
|
-
cause: infoMeta.err.cause,
|
|
69
|
-
...infoMeta.err,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
63
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
64
|
+
for (const prop of errorProps) {
|
|
65
|
+
if (infoMeta[prop] instanceof Error) {
|
|
66
|
+
meta[prop] = {
|
|
67
|
+
message: infoMeta[prop].message,
|
|
68
|
+
stack: infoMeta[prop].stack,
|
|
69
|
+
name: infoMeta[prop].name,
|
|
70
|
+
type: infoMeta[prop].type,
|
|
71
|
+
cause: infoMeta[prop].cause,
|
|
72
|
+
...infoMeta[prop],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
82
75
|
}
|
|
83
76
|
|
|
84
77
|
// still have keys after deleting the above
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1167,9 +1167,9 @@
|
|
|
1167
1167
|
}
|
|
1168
1168
|
},
|
|
1169
1169
|
"@testim/webdriverio": {
|
|
1170
|
-
"version": "0.0.
|
|
1171
|
-
"resolved": "https://registry.npmjs.org/@testim/webdriverio/-/webdriverio-0.0.
|
|
1172
|
-
"integrity": "sha512-
|
|
1170
|
+
"version": "0.0.4",
|
|
1171
|
+
"resolved": "https://registry.npmjs.org/@testim/webdriverio/-/webdriverio-0.0.4.tgz",
|
|
1172
|
+
"integrity": "sha512-FkuPaDHxg/42MhQ/PSAurx4IroEQaWOGH8BVmIcGFjAz7BpYVNQhX7txppDTiHUGGxpeOQiqM3VvxawBfW6Qcg==",
|
|
1173
1173
|
"requires": {
|
|
1174
1174
|
"archiver": "~2.1.0",
|
|
1175
1175
|
"babel-runtime": "^6.26.0",
|
|
@@ -1182,7 +1182,7 @@
|
|
|
1182
1182
|
"grapheme-splitter": "^1.0.2",
|
|
1183
1183
|
"inquirer": "~3.3.0",
|
|
1184
1184
|
"json-stringify-safe": "~5.0.1",
|
|
1185
|
-
"mkdirp": "
|
|
1185
|
+
"mkdirp": "1.0.4",
|
|
1186
1186
|
"npm-install-package": "~2.1.0",
|
|
1187
1187
|
"optimist": "~0.6.1",
|
|
1188
1188
|
"q": "~1.5.0",
|
|
@@ -1220,14 +1220,6 @@
|
|
|
1220
1220
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
|
|
1221
1221
|
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
|
|
1222
1222
|
},
|
|
1223
|
-
"mkdirp": {
|
|
1224
|
-
"version": "0.5.5",
|
|
1225
|
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
|
1226
|
-
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
|
1227
|
-
"requires": {
|
|
1228
|
-
"minimist": "^1.2.5"
|
|
1229
|
-
}
|
|
1230
|
-
},
|
|
1231
1223
|
"safe-buffer": {
|
|
1232
1224
|
"version": "5.1.2",
|
|
1233
1225
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
|
@@ -2380,9 +2372,9 @@
|
|
|
2380
2372
|
"dev": true
|
|
2381
2373
|
},
|
|
2382
2374
|
"caniuse-lite": {
|
|
2383
|
-
"version": "1.0.
|
|
2384
|
-
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.
|
|
2385
|
-
"integrity": "sha512-
|
|
2375
|
+
"version": "1.0.30001285",
|
|
2376
|
+
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz",
|
|
2377
|
+
"integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==",
|
|
2386
2378
|
"dev": true
|
|
2387
2379
|
},
|
|
2388
2380
|
"caseless": {
|
|
@@ -2552,9 +2544,9 @@
|
|
|
2552
2544
|
},
|
|
2553
2545
|
"dependencies": {
|
|
2554
2546
|
"@types/node": {
|
|
2555
|
-
"version": "16.11.
|
|
2556
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.
|
|
2557
|
-
"integrity": "sha512
|
|
2547
|
+
"version": "16.11.12",
|
|
2548
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz",
|
|
2549
|
+
"integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw=="
|
|
2558
2550
|
},
|
|
2559
2551
|
"mkdirp": {
|
|
2560
2552
|
"version": "0.5.5",
|
|
@@ -2758,9 +2750,9 @@
|
|
|
2758
2750
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
|
2759
2751
|
},
|
|
2760
2752
|
"color-string": {
|
|
2761
|
-
"version": "1.
|
|
2762
|
-
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.
|
|
2763
|
-
"integrity": "sha512-
|
|
2753
|
+
"version": "1.9.0",
|
|
2754
|
+
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz",
|
|
2755
|
+
"integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==",
|
|
2764
2756
|
"requires": {
|
|
2765
2757
|
"color-name": "^1.0.0",
|
|
2766
2758
|
"simple-swizzle": "^0.2.2"
|
|
@@ -3554,9 +3546,9 @@
|
|
|
3554
3546
|
"integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ=="
|
|
3555
3547
|
},
|
|
3556
3548
|
"electron-to-chromium": {
|
|
3557
|
-
"version": "1.4.
|
|
3558
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
3559
|
-
"integrity": "sha512-
|
|
3549
|
+
"version": "1.4.13",
|
|
3550
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.13.tgz",
|
|
3551
|
+
"integrity": "sha512-ih5tIhzEuf78pBY70FXLo+Pw73R5MPPPcXb4CGBMJaCQt/qo/IGIesKXmswpemVCKSE2Bulr5FslUv7gAWJoOw==",
|
|
3560
3552
|
"dev": true
|
|
3561
3553
|
},
|
|
3562
3554
|
"emoji-regex": {
|
|
@@ -6116,9 +6108,9 @@
|
|
|
6116
6108
|
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
|
|
6117
6109
|
},
|
|
6118
6110
|
"json-schema": {
|
|
6119
|
-
"version": "0.
|
|
6120
|
-
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.
|
|
6121
|
-
"integrity": "
|
|
6111
|
+
"version": "0.4.0",
|
|
6112
|
+
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
|
|
6113
|
+
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
|
|
6122
6114
|
},
|
|
6123
6115
|
"json-schema-traverse": {
|
|
6124
6116
|
"version": "0.4.1",
|
|
@@ -6178,13 +6170,13 @@
|
|
|
6178
6170
|
}
|
|
6179
6171
|
},
|
|
6180
6172
|
"jsprim": {
|
|
6181
|
-
"version": "1.4.
|
|
6182
|
-
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.
|
|
6183
|
-
"integrity": "
|
|
6173
|
+
"version": "1.4.2",
|
|
6174
|
+
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
|
|
6175
|
+
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
|
|
6184
6176
|
"requires": {
|
|
6185
6177
|
"assert-plus": "1.0.0",
|
|
6186
6178
|
"extsprintf": "1.3.0",
|
|
6187
|
-
"json-schema": "0.
|
|
6179
|
+
"json-schema": "0.4.0",
|
|
6188
6180
|
"verror": "1.10.0"
|
|
6189
6181
|
}
|
|
6190
6182
|
},
|
|
@@ -10844,9 +10836,9 @@
|
|
|
10844
10836
|
"integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg=="
|
|
10845
10837
|
},
|
|
10846
10838
|
"object-inspect": {
|
|
10847
|
-
"version": "1.11.
|
|
10848
|
-
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.
|
|
10849
|
-
"integrity": "sha512-
|
|
10839
|
+
"version": "1.11.1",
|
|
10840
|
+
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz",
|
|
10841
|
+
"integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==",
|
|
10850
10842
|
"dev": true
|
|
10851
10843
|
},
|
|
10852
10844
|
"object-keys": {
|
|
@@ -12949,9 +12941,9 @@
|
|
|
12949
12941
|
},
|
|
12950
12942
|
"dependencies": {
|
|
12951
12943
|
"debug": {
|
|
12952
|
-
"version": "4.3.
|
|
12953
|
-
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.
|
|
12954
|
-
"integrity": "sha512
|
|
12944
|
+
"version": "4.3.3",
|
|
12945
|
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
|
|
12946
|
+
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
|
|
12955
12947
|
"requires": {
|
|
12956
12948
|
"ms": "2.1.2"
|
|
12957
12949
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testim/testim-cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.207.0",
|
|
4
4
|
"description": "Command line interface for running Testing on your CI",
|
|
5
5
|
"author": "Oren Rubin",
|
|
6
6
|
"contributors": [{
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@applitools/eyes-sdk-core": "12.23.12",
|
|
52
52
|
"@applitools/visual-grid-client": "15.8.31",
|
|
53
53
|
"@testim/coralogix-logger": "1.1.27-beta",
|
|
54
|
-
"@testim/webdriverio": "0.0.
|
|
54
|
+
"@testim/webdriverio": "0.0.4",
|
|
55
55
|
"abort-controller": "3.0.0",
|
|
56
56
|
"ajv": "6.12.2",
|
|
57
57
|
"analytics-node": "5.0.0",
|
|
@@ -12,17 +12,19 @@ class PixelValidationStepAction extends StepAction {
|
|
|
12
12
|
const batchId = (config.batch && config.batch.id) || testResultId;
|
|
13
13
|
const eyeManager = await eyeSdkService.getManager(shouldUseVisualGrid, this.context.config.applitoolsConcurrency || 5, batchId, this.runContext.applitoolsIntegrationData);
|
|
14
14
|
const targetElementData = this.getTarget() || {};
|
|
15
|
+
let result;
|
|
15
16
|
try {
|
|
16
17
|
const openedEye = await eyeManager.openEyes({ driver: this.driver.client, config });
|
|
17
18
|
const region = (this.step.action === 'element' && targetElementData.seleniumElement) || undefined;
|
|
18
19
|
await openedEye.check({ settings: { region, fully: this.step.action === 'stitched' } });
|
|
19
20
|
const eyesResults = await openedEye.close();
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
result = { isApplitoolsSdkResult: true, success: true, eyesResults };
|
|
22
23
|
} catch (err) {
|
|
23
24
|
logger.error('Applitools SDK step failed', { err, info: err.info });
|
|
24
|
-
|
|
25
|
+
result = { isApplitoolsSdkResult: true, success: false, err };
|
|
25
26
|
}
|
|
27
|
+
return await eyeSdkService.handleApplitoolsSdkResult(this.context, result);
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
// https://github.com/applitools/eyes.sdk.javascript1/blob/master/packages/eyes-webdriverio-4/src/spec-driver.ts
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
* @
|
|
2
|
+
* @typedef {typeof import('../../../../clickim/src/background/eyeSdkBuilder').EyeSdkBuilder} EyeSdkBuilder
|
|
3
|
+
* @typedef {import('@applitools/types').SpecDriver} SpecDriver
|
|
4
|
+
* @typedef {import('@applitools/types').Core} Core
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
const { EyeSdkBuilder } = require('../../commons/getSessionPlayerRequire');
|
|
7
8
|
const { makeSDK } = require('@applitools/eyes-sdk-core');
|
|
8
9
|
const { W3C_ELEMENT_ID } = require('../constants');
|
|
9
10
|
const _ = require('lodash');
|
|
@@ -31,7 +32,8 @@ function getValueOrFallbackIfNullOrUndefined(value, fallback) {
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
/**
|
|
34
|
-
*
|
|
35
|
+
* Applitools Spec Driver for webdriverIO 4.
|
|
36
|
+
* @see https://github.com/applitools/eyes.sdk.javascript1/blob/master/packages/eyes-webdriverio-4/src/spec-driver.ts
|
|
35
37
|
* @implements {SpecDriver}
|
|
36
38
|
*/
|
|
37
39
|
class EyesSpec {
|
|
@@ -215,20 +217,19 @@ class EyesSpec {
|
|
|
215
217
|
|
|
216
218
|
class EyeSdkService {
|
|
217
219
|
constructor() {
|
|
218
|
-
/**
|
|
219
|
-
* @typedef {import('@applitools/types').Core} Core
|
|
220
|
-
* @type {Core}
|
|
221
|
-
*/
|
|
220
|
+
/** @type {Core} */
|
|
222
221
|
this.sdk = makeSDK({
|
|
223
222
|
name: 'Testim.io',
|
|
224
223
|
version: '4.0.0',
|
|
225
224
|
spec: new EyesSpec(),
|
|
226
225
|
VisualGridClient: require('@applitools/visual-grid-client'),
|
|
227
226
|
});
|
|
227
|
+
/** @type {EyeSdkBuilder['handleApplitoolsSdkResult']} */
|
|
228
|
+
this.handleApplitoolsSdkResult = EyeSdkBuilder.handleApplitoolsSdkResult;
|
|
228
229
|
}
|
|
229
230
|
async getManager(useVisualGrid, concurrency, batchId, applitoolsIntegrationData) {
|
|
230
231
|
const manager = await this.sdk.makeManager({ type: useVisualGrid ? 'vg' : 'classic', concurrency });
|
|
231
|
-
|
|
232
|
+
EyeSdkBuilder.rememberCreatedBatch(batchId, applitoolsIntegrationData);
|
|
232
233
|
return manager;
|
|
233
234
|
}
|
|
234
235
|
}
|
|
@@ -83,15 +83,8 @@ class TestPlanRunner {
|
|
|
83
83
|
}
|
|
84
84
|
// When sessionPlayer is available, use it - as it only attempts to close batches that exist.
|
|
85
85
|
if (tpOptions.mode === constants.CLI_MODE.SELENIUM) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
*/
|
|
89
|
-
const sessionPlayerInit = require('../commons/getSessionPlayerRequire');
|
|
90
|
-
// TODO: remove once session player released.
|
|
91
|
-
if (typeof sessionPlayerInit.EyeSdkBuilder.closeBatch !== 'function') {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
await sessionPlayerInit.EyeSdkBuilder.closeBatch(executionId);
|
|
86
|
+
const { EyeSdkBuilder } = require('../commons/getSessionPlayerRequire');
|
|
87
|
+
await EyeSdkBuilder.closeBatch(executionId);
|
|
95
88
|
return;
|
|
96
89
|
}
|
|
97
90
|
try {
|
|
@@ -185,10 +178,11 @@ class TestPlanRunner {
|
|
|
185
178
|
const configName = configs && configs.length === 1 ? configs[0] : null;
|
|
186
179
|
|
|
187
180
|
const isCodeMode = tpOptions.files.length > 0;
|
|
181
|
+
const testNames = tpOptions.lightweightMode && tpOptions.lightweightMode.onlyTestIdsNoSuite ? [] : _.concat(beforeTests, tests, afterTests).map(test => test.name);
|
|
188
182
|
|
|
189
183
|
const testListInfoPromise = tpOptions.lightweightMode && tpOptions.lightweightMode.onlyTestIdsNoSuite ?
|
|
190
184
|
{ beforeTests, tests, afterTests } :
|
|
191
|
-
testStatus.executionStart(executionId, projectId, this.startTime, testPlanName);
|
|
185
|
+
testStatus.executionStart(executionId, projectId, this.startTime, testPlanName, testNames);
|
|
192
186
|
let childTestResults;
|
|
193
187
|
if (isCodeMode) {
|
|
194
188
|
childTestResults = Bluebird.try(async () => {
|
package/testRunStatus.js
CHANGED
|
@@ -15,6 +15,7 @@ const _ = require('lodash');
|
|
|
15
15
|
const { registerExitHook } = require('./processHandler');
|
|
16
16
|
const { calculateCoverage } = require('./coverage/jsCoverage');
|
|
17
17
|
const featureAvailabilityService = require('./commons/featureAvailabilityService');
|
|
18
|
+
const featureFlags = require('./commons/featureFlags');
|
|
18
19
|
const { mapFilesToLocalDrive } = require('./services/localRCASaver');
|
|
19
20
|
|
|
20
21
|
const gitBranch = utils.getEnvironmentGitBranch();
|
|
@@ -333,7 +334,7 @@ RunStatus.prototype.calcTestRunStatus = function () {
|
|
|
333
334
|
}, {});
|
|
334
335
|
};
|
|
335
336
|
|
|
336
|
-
RunStatus.prototype.executionStart = function (executionId, projectId, startTime, testPlanName) {
|
|
337
|
+
RunStatus.prototype.executionStart = function (executionId, projectId, startTime, testPlanName, testNames) {
|
|
337
338
|
logger.info('execution started', { executionId });
|
|
338
339
|
const { options } = this;
|
|
339
340
|
const { remoteRunId, projectData } = options;
|
|
@@ -352,8 +353,11 @@ RunStatus.prototype.executionStart = function (executionId, projectId, startTime
|
|
|
352
353
|
]));
|
|
353
354
|
|
|
354
355
|
this.startTime = startTime || Date.now();
|
|
355
|
-
|
|
356
|
-
|
|
356
|
+
const runHooksProps = { projectId, executionId };
|
|
357
|
+
if (featureFlags.flags.testNamesToBeforeSuiteHook.isEnabled()) {
|
|
358
|
+
runHooksProps.testNames = testNames;
|
|
359
|
+
}
|
|
360
|
+
return runHook(options.beforeSuite, runHooksProps)
|
|
357
361
|
.then(params => {
|
|
358
362
|
const overrideTestDataBuilder = new OverrideTestDataBuilder(params, _.cloneDeep(this.testInfoList), projectId);
|
|
359
363
|
this.testInfoList = overrideTestDataBuilder.overrideTestData();
|