@testim/testim-cli 3.203.0 → 3.204.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/commons/getSessionPlayerRequire.js +22 -2
- package/lib/coralogix-winston.transport.js +0 -1
- package/npm-shrinkwrap.json +3 -3
- package/package.json +1 -1
- package/player/stepActions/pixelValidationStepAction.js +4 -2
- package/player/utils/eyeSdkService.js +11 -10
- package/runners/TestPlanRunner.js +2 -9
|
@@ -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');
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -3554,9 +3554,9 @@
|
|
|
3554
3554
|
"integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ=="
|
|
3555
3555
|
},
|
|
3556
3556
|
"electron-to-chromium": {
|
|
3557
|
-
"version": "1.4.
|
|
3558
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
3559
|
-
"integrity": "sha512-
|
|
3557
|
+
"version": "1.4.2",
|
|
3558
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.2.tgz",
|
|
3559
|
+
"integrity": "sha512-SxHMmlSvpT83M/MLxTXQBqfqo3bK+UOk6Uup6w1paX86l+af1xwwTMLlyK3xJwE3Kq8/QnecuFKmnmRlAUJCXw==",
|
|
3560
3560
|
"dev": true
|
|
3561
3561
|
},
|
|
3562
3562
|
"emoji-regex": {
|
package/package.json
CHANGED
|
@@ -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 {
|