@applitools/core 1.3.7 → 1.3.8

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/dist/ufg/check.js CHANGED
@@ -34,10 +34,11 @@ const to_base_check_settings_1 = require("../utils/to-base-check-settings");
34
34
  const generate_safe_selectors_1 = require("./utils/generate-safe-selectors");
35
35
  const abort_error_1 = require("../errors/abort-error");
36
36
  const utils = __importStar(require("@applitools/utils"));
37
+ const add_key_to_duplicated_values_in_array_1 = __importDefault(require("./utils/add-key-to-duplicated-values-in-array"));
37
38
  const chalk_1 = __importDefault(require("chalk"));
38
39
  function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
39
40
  return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
40
- var _a, _b, _c;
41
+ var _a, _b, _c, _d;
41
42
  logger.log('Command "check" is called with settings', settings);
42
43
  if (signal.aborted) {
43
44
  logger.warn('Command "check" was called after test was already aborted');
@@ -45,12 +46,13 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
45
46
  }
46
47
  const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
47
48
  let snapshots, snapshotUrl, snapshotTitle, userAgent, regionToTarget, selectorsToCalculate;
49
+ const uniqueRenderers = (0, add_key_to_duplicated_values_in_array_1.default)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
48
50
  if ((0, driver_1.isDriver)(target, spec)) {
49
51
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
50
- await driver.currentContext.setScrollingElement((_a = settings.scrollRootElement) !== null && _a !== void 0 ? _a : null);
51
- if (driver.isWeb && (!settings.renderers || settings.renderers.length === 0)) {
52
+ await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
53
+ if (driver.isWeb && uniqueRenderers.length === 0) {
52
54
  const viewportSize = await driver.getViewportSize();
53
- settings.renderers = [{ name: 'chrome', ...viewportSize }];
55
+ uniqueRenderers.push({ name: 'chrome', ...viewportSize });
54
56
  }
55
57
  let cleanupGeneratedSelectors;
56
58
  if (driver.isWeb) {
@@ -61,7 +63,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
61
63
  });
62
64
  cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
63
65
  if (elementReferenceToTarget) {
64
- regionToTarget = (_b = generated.selectors[0]) === null || _b === void 0 ? void 0 : _b.safeSelector;
66
+ regionToTarget = (_c = generated.selectors[0]) === null || _c === void 0 ? void 0 : _c.safeSelector;
65
67
  if (!regionToTarget)
66
68
  throw new Error('Target element not found');
67
69
  selectorsToCalculate = generated.selectors.slice(1);
@@ -78,7 +80,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
78
80
  waitBeforeCapture: settings.waitBeforeCapture,
79
81
  disableBrowserFetching: settings.disableBrowserFetching,
80
82
  layoutBreakpoints: settings.layoutBreakpoints,
81
- renderers: settings.renderers,
83
+ renderers: uniqueRenderers,
82
84
  skipResources: client.getCachedResourceUrls(),
83
85
  },
84
86
  hooks: {
@@ -104,15 +106,15 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
104
106
  await (cleanupGeneratedSelectors === null || cleanupGeneratedSelectors === void 0 ? void 0 : cleanupGeneratedSelectors());
105
107
  }
106
108
  else {
107
- snapshots = !utils.types.isArray(target) ? Array(settings.renderers.length).fill(target) : target;
109
+ snapshots = !utils.types.isArray(target) ? Array(uniqueRenderers.length).fill(target) : target;
108
110
  snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
109
111
  }
110
- regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_c = elementReferenceToTarget) !== null && _c !== void 0 ? _c : settings.region);
112
+ regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_d = elementReferenceToTarget) !== null && _d !== void 0 ? _d : settings.region);
111
113
  selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
112
114
  originalSelector: selector,
113
115
  safeSelector: selector,
114
116
  })));
115
- const promises = settings.renderers.map(async (renderer, index) => {
117
+ const promises = uniqueRenderers.map(async (renderer, index) => {
116
118
  if (utils.types.has(renderer, 'name') && renderer.name === 'edge') {
117
119
  const message = chalk_1.default.yellow(`The 'edge' option that is being used in your browsers' configuration will soon be deprecated. Please change it to either 'edgelegacy' for the legacy version or to 'edgechromium' for the new Chromium-based version. Please note, when using the built-in BrowserType enum, then the values are BrowserType.EDGE_LEGACY and BrowserType.EDGE_CHROMIUM, respectively.`);
118
120
  logger.console.log(message);
@@ -203,7 +205,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
203
205
  throw error;
204
206
  }
205
207
  });
206
- return settings.renderers.map((renderer, index) => ({
208
+ return uniqueRenderers.map((renderer, index) => ({
207
209
  asExpected: true,
208
210
  userTestId: eyes.test.userTestId,
209
211
  renderer,
@@ -80,7 +80,10 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
80
80
  // check with indexing and storage
81
81
  check: utils.general.wrap((0, check_1.makeCheck)({ eyes, client, target: driver, spec, signal: controller.signal, logger }), async (check, options = {}) => {
82
82
  const results = await check(options);
83
- storage.push(...results.map(result => ({ promise: result.promise, renderer: result.renderer })));
83
+ storage.push(...results.map(result => ({
84
+ promise: result.promise,
85
+ renderer: result.renderer,
86
+ })));
84
87
  return results;
85
88
  }),
86
89
  checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, client, target: driver, spec, signal: controller.signal, logger }),
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function addKeyToDuplicatedValuesInArray(array) {
4
+ const result = [];
5
+ const duplicates = new Map();
6
+ for (const value of array) {
7
+ let index = 0;
8
+ const key = JSON.stringify(value);
9
+ if (duplicates.has(key)) {
10
+ index = duplicates.get(key) + 1;
11
+ result.push({ ...value, id: `${typeof value.id !== 'undefined' ? value.id + '-' : ''}${index}` });
12
+ }
13
+ else {
14
+ result.push(value);
15
+ }
16
+ duplicates.set(key, index);
17
+ }
18
+ return result;
19
+ }
20
+ exports.default = addKeyToDuplicatedValuesInArray;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.3.7",
3
+ "version": "1.3.8",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -61,7 +61,7 @@
61
61
  }
62
62
  },
63
63
  "dependencies": {
64
- "@applitools/core-base": "1.1.24",
64
+ "@applitools/core-base": "1.1.25",
65
65
  "@applitools/dom-capture": "11.2.0",
66
66
  "@applitools/dom-snapshot": "4.7.3",
67
67
  "@applitools/driver": "1.11.21",
@@ -70,7 +70,7 @@
70
70
  "@applitools/req": "1.1.23",
71
71
  "@applitools/screenshoter": "3.7.20",
72
72
  "@applitools/snippets": "2.4.12",
73
- "@applitools/ufg-client": "1.1.12",
73
+ "@applitools/ufg-client": "1.1.14",
74
74
  "@applitools/utils": "1.3.22",
75
75
  "abort-controller": "3.0.0",
76
76
  "chalk": "4.1.2",
@@ -80,11 +80,11 @@
80
80
  "devDependencies": {
81
81
  "@applitools/bongo": "^2.2.0",
82
82
  "@applitools/sdk-fake-eyes-server": "^2.1.3",
83
- "@applitools/spec-driver-puppeteer": "^1.1.31",
83
+ "@applitools/spec-driver-puppeteer": "^1.1.32",
84
84
  "@applitools/spec-driver-selenium": "^1.5.19",
85
85
  "@applitools/spec-driver-webdriverio": "^1.4.18",
86
86
  "@applitools/test-server": "^1.1.16",
87
- "@applitools/test-utils": "^1.5.5",
87
+ "@applitools/test-utils": "^1.5.6",
88
88
  "@types/mocha": "^9.1.1",
89
89
  "@types/node": "12",
90
90
  "@types/selenium-webdriver": "^4.1.2",
@@ -0,0 +1,3 @@
1
+ export default function addKeyToDuplicatedValuesInArray<TValue extends {
2
+ id?: string;
3
+ }>(array: TValue[]): TValue[];