@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.
@@ -1,10 +1,30 @@
1
- "use strict";
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
- const sessionPlayer = require(require('path').join(testimAppDataFolder, "sessionPlayer.js"));
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');
@@ -16,7 +16,6 @@ const severityMap = {
16
16
  };
17
17
 
18
18
  class CoralogixTransport extends TransportStream {
19
- static options;
20
19
  constructor(options) {
21
20
  options = Object.assign({}, CoralogixTransport.options, options);
22
21
  super(options);
@@ -3554,9 +3554,9 @@
3554
3554
  "integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ=="
3555
3555
  },
3556
3556
  "electron-to-chromium": {
3557
- "version": "1.4.1",
3558
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz",
3559
- "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testim/testim-cli",
3
- "version": "3.203.0",
3
+ "version": "3.204.0",
4
4
  "description": "Command line interface for running Testing on your CI",
5
5
  "author": "Oren Rubin",
6
6
  "contributors": [{
@@ -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
- return { isApplitoolsSdkResult: true, success: true, eyesResults };
22
+ result = { isApplitoolsSdkResult: true, success: true, eyesResults };
22
23
  } catch (err) {
23
24
  logger.error('Applitools SDK step failed', { err, info: err.info });
24
- return { isApplitoolsSdkResult: true, success: false, err };
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
- * @type {{ EyeSdkBuilder: typeof import('../../../../clickim/src/background/eyeSdkBuilder').EyeSdkBuilder }}
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
- const sessionPlayer = require('../../commons/getSessionPlayerRequire');
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
- * @typedef {import('@applitools/types').SpecDriver} SpecDriver
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
- sessionPlayer.EyeSdkBuilder.rememberCreatedBatch(batchId, applitoolsIntegrationData);
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
- * @type {{ EyeSdkBuilder: typeof import('../../../clickim/src/background/eyeSdkBuilder').EyeSdkBuilder }}
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 {