@applitools/core 1.0.6 → 1.0.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.
@@ -43,6 +43,7 @@ async function takeScreenshot({ driver, settings, logger, }) {
43
43
  overlap: settings.overlap,
44
44
  wait: settings.waitBeforeCapture,
45
45
  framed: driver.isNative,
46
+ lazyLoad: settings.lazyLoad,
46
47
  stabilization: settings.normalization && {
47
48
  crop: settings.normalization.cut,
48
49
  scale: settings.normalization.scaleRatio,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCloseManager = void 0;
4
4
  const test_error_1 = require("./errors/test-error");
5
+ const internal_error_1 = require("./errors/internal-error");
5
6
  function makeCloseManager({ core, storage, logger: defaultLogger, }) {
6
7
  return async function closeManager({ settings, logger = defaultLogger, } = {}) {
7
8
  const containers = await Promise.all(storage.map(async ({ eyes, promise }) => {
@@ -17,7 +18,7 @@ function makeCloseManager({ core, storage, logger: defaultLogger, }) {
17
18
  });
18
19
  }
19
20
  catch (error) {
20
- return [{ error, userTestId: error.userTestId, renderer: error.renderer }];
21
+ return [{ error: new internal_error_1.InternalError(error), ...error.info }];
21
22
  }
22
23
  }));
23
24
  const batches = storage.reduce((batches, { eyes }) => {
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbortError = void 0;
4
+ class AbortError extends Error {
5
+ }
6
+ exports.AbortError = AbortError;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalError = void 0;
4
+ const core_base_1 = require("@applitools/core-base");
5
+ class InternalError extends core_base_1.CoreError {
6
+ constructor(error) {
7
+ super(error.message, { reason: 'internal', ...error.info });
8
+ this.stack = error.stack;
9
+ }
10
+ }
11
+ exports.InternalError = InternalError;
@@ -24,6 +24,9 @@ class TestError extends core_base_1.CoreError {
24
24
  });
25
25
  }
26
26
  }
27
+ else {
28
+ super('');
29
+ }
27
30
  }
28
31
  }
29
32
  exports.TestError = TestError;
package/dist/open-eyes.js CHANGED
@@ -34,24 +34,24 @@ const close_1 = require("./close");
34
34
  const utils = __importStar(require("@applitools/utils"));
35
35
  function makeOpenEyes({ spec, core, concurrency, logger: defaultLogger, }) {
36
36
  return async function openEyes({ type, target, settings, config, logger = defaultLogger, }) {
37
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
38
- var _u, _v, _w, _x, _y;
37
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
38
+ var _v, _w, _x, _y, _z;
39
39
  settings = { ...config === null || config === void 0 ? void 0 : config.open, ...settings };
40
- settings.userTestId = `${settings.testName}--${utils.general.guid()}`;
41
- (_a = settings.serverUrl) !== null && _a !== void 0 ? _a : (settings.serverUrl = (_b = utils.general.getEnvValue('SERVER_URL')) !== null && _b !== void 0 ? _b : 'https://eyesapi.applitools.com');
42
- (_c = settings.apiKey) !== null && _c !== void 0 ? _c : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
43
- (_d = settings.batch) !== null && _d !== void 0 ? _d : (settings.batch = {});
44
- (_e = (_u = settings.batch).id) !== null && _e !== void 0 ? _e : (_u.id = (_f = utils.general.getEnvValue('BATCH_ID')) !== null && _f !== void 0 ? _f : utils.general.guid());
45
- (_g = (_v = settings.batch).name) !== null && _g !== void 0 ? _g : (_v.name = utils.general.getEnvValue('BATCH_NAME'));
46
- (_h = (_w = settings.batch).sequenceName) !== null && _h !== void 0 ? _h : (_w.sequenceName = utils.general.getEnvValue('BATCH_SEQUENCE'));
47
- (_j = (_x = settings.batch).notifyOnCompletion) !== null && _j !== void 0 ? _j : (_x.notifyOnCompletion = utils.general.getEnvValue('BATCH_NOTIFY', 'boolean'));
48
- (_k = settings.keepBatchOpen) !== null && _k !== void 0 ? _k : (settings.keepBatchOpen = utils.general.getEnvValue('DONT_CLOSE_BATCHES', 'boolean'));
49
- (_l = settings.branchName) !== null && _l !== void 0 ? _l : (settings.branchName = utils.general.getEnvValue('BRANCH'));
50
- (_m = settings.parentBranchName) !== null && _m !== void 0 ? _m : (settings.parentBranchName = utils.general.getEnvValue('PARENT_BRANCH'));
51
- (_o = settings.baselineBranchName) !== null && _o !== void 0 ? _o : (settings.baselineBranchName = utils.general.getEnvValue('BASELINE_BRANCH'));
52
- (_p = settings.ignoreBaseline) !== null && _p !== void 0 ? _p : (settings.ignoreBaseline = false);
53
- (_q = settings.compareWithParentBranch) !== null && _q !== void 0 ? _q : (settings.compareWithParentBranch = false);
54
- (_r = (_y = settings).renderConcurrency) !== null && _r !== void 0 ? _r : (_y.renderConcurrency = (_t = (_s = config === null || config === void 0 ? void 0 : config.check) === null || _s === void 0 ? void 0 : _s.renderers) === null || _t === void 0 ? void 0 : _t.length);
40
+ (_a = settings.userTestId) !== null && _a !== void 0 ? _a : (settings.userTestId = `${settings.testName}--${utils.general.guid()}`);
41
+ (_b = settings.serverUrl) !== null && _b !== void 0 ? _b : (settings.serverUrl = (_c = utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
42
+ (_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
43
+ (_e = settings.batch) !== null && _e !== void 0 ? _e : (settings.batch = {});
44
+ (_f = (_v = settings.batch).id) !== null && _f !== void 0 ? _f : (_v.id = (_g = utils.general.getEnvValue('BATCH_ID')) !== null && _g !== void 0 ? _g : utils.general.guid());
45
+ (_h = (_w = settings.batch).name) !== null && _h !== void 0 ? _h : (_w.name = utils.general.getEnvValue('BATCH_NAME'));
46
+ (_j = (_x = settings.batch).sequenceName) !== null && _j !== void 0 ? _j : (_x.sequenceName = utils.general.getEnvValue('BATCH_SEQUENCE'));
47
+ (_k = (_y = settings.batch).notifyOnCompletion) !== null && _k !== void 0 ? _k : (_y.notifyOnCompletion = utils.general.getEnvValue('BATCH_NOTIFY', 'boolean'));
48
+ (_l = settings.keepBatchOpen) !== null && _l !== void 0 ? _l : (settings.keepBatchOpen = utils.general.getEnvValue('DONT_CLOSE_BATCHES', 'boolean'));
49
+ (_m = settings.branchName) !== null && _m !== void 0 ? _m : (settings.branchName = utils.general.getEnvValue('BRANCH'));
50
+ (_o = settings.parentBranchName) !== null && _o !== void 0 ? _o : (settings.parentBranchName = utils.general.getEnvValue('PARENT_BRANCH'));
51
+ (_p = settings.baselineBranchName) !== null && _p !== void 0 ? _p : (settings.baselineBranchName = utils.general.getEnvValue('BASELINE_BRANCH'));
52
+ (_q = settings.ignoreBaseline) !== null && _q !== void 0 ? _q : (settings.ignoreBaseline = false);
53
+ (_r = settings.compareWithParentBranch) !== null && _r !== void 0 ? _r : (settings.compareWithParentBranch = false);
54
+ (_s = (_z = settings).renderConcurrency) !== null && _s !== void 0 ? _s : (_z.renderConcurrency = (_u = (_t = config === null || config === void 0 ? void 0 : config.check) === null || _t === void 0 ? void 0 : _t.renderers) === null || _u === void 0 ? void 0 : _u.length);
55
55
  if (!utils.types.has(core, 'type')) {
56
56
  core = type === 'ufg' ? (0, core_2.makeCore)({ spec, core, concurrency, logger }) : (0, core_1.makeCore)({ spec, core, logger });
57
57
  }
package/dist/ufg/abort.js CHANGED
@@ -1,15 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAbort = void 0;
4
+ const abort_error_1 = require("../errors/abort-error");
4
5
  function makeAbort({ storage, controller, logger: defaultLogger }) {
5
6
  return async function ({ logger = defaultLogger, } = {}) {
6
7
  controller.abort();
7
- const results = await Promise.allSettled(storage);
8
- const eyes = results.reduce((eyes, result) => {
9
- const value = result.status === 'fulfilled' ? result.value : result.reason;
10
- return eyes.set(value.eyes, value.renderer);
11
- }, new Map());
12
- return Promise.all(Array.from(eyes.entries(), async ([eyes, renderer]) => {
8
+ return Promise.all(storage.map(async (promise) => {
9
+ let eyes, renderer;
10
+ try {
11
+ const value = await promise;
12
+ eyes = value.eyes;
13
+ renderer = value.renderer;
14
+ }
15
+ catch (error) {
16
+ eyes = error.info.eyes;
17
+ renderer = error.info.renderer;
18
+ if (!eyes) {
19
+ if (error instanceof abort_error_1.AbortError)
20
+ return error.info;
21
+ else
22
+ throw error;
23
+ }
24
+ }
13
25
  const [result] = await eyes.abort({ logger });
14
26
  return { ...result, renderer };
15
27
  }));
package/dist/ufg/check.js CHANGED
@@ -32,6 +32,7 @@ const take_snapshots_1 = require("./utils/take-snapshots");
32
32
  const wait_for_lazy_load_1 = require("../utils/wait-for-lazy-load");
33
33
  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
+ const abort_error_1 = require("../errors/abort-error");
35
36
  const utils = __importStar(require("@applitools/utils"));
36
37
  const chalk_1 = __importDefault(require("chalk"));
37
38
  function makeCheck({ spec, getEyes, client, test, signal, target: defaultTarget, logger: defaultLogger, }) {
@@ -40,7 +41,7 @@ function makeCheck({ spec, getEyes, client, test, signal, target: defaultTarget,
40
41
  logger.log('Command "check" is called with settings', settings);
41
42
  if (signal.aborted) {
42
43
  logger.warn('Command "check" was called after test was already aborted');
43
- throw new Error('Command "check" was called after test was already aborted');
44
+ throw new abort_error_1.AbortError('Command "check" was called after test was already aborted');
44
45
  }
45
46
  const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
46
47
  let snapshots, snapshotUrl, snapshotTitle, regionToTarget, selectorsToCalculate;
@@ -112,7 +113,7 @@ function makeCheck({ spec, getEyes, client, test, signal, target: defaultTarget,
112
113
  try {
113
114
  if (signal.aborted) {
114
115
  logger.warn('Command "check" was aborted before rendering');
115
- throw new Error('Command "check" was aborted before rendering');
116
+ throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
116
117
  }
117
118
  const { cookies, ...snapshot } = snapshots[index];
118
119
  const renderTargetPromise = client.createRenderTarget({
@@ -135,21 +136,21 @@ function makeCheck({ spec, getEyes, client, test, signal, target: defaultTarget,
135
136
  try {
136
137
  if (signal.aborted) {
137
138
  logger.warn('Command "check" was aborted before rendering');
138
- throw new Error('Command "check" was aborted before rendering');
139
+ throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
139
140
  }
140
141
  else if (eyes.aborted) {
141
142
  logger.warn(`Renderer with id ${rendererId} was aborted during one of the previous steps`);
142
- throw new Error(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
143
+ throw new abort_error_1.AbortError(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
143
144
  }
144
145
  request.settings.rendererId = rendererId;
145
146
  request.target = await renderTargetPromise;
146
147
  if (signal.aborted) {
147
148
  logger.warn('Command "check" was aborted before rendering');
148
- throw new Error('Command "check" was aborted before rendering');
149
+ throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
149
150
  }
150
151
  else if (eyes.aborted) {
151
152
  logger.warn(`Renderer with id ${rendererId} was aborted during one of the previous steps`);
152
- throw new Error(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
153
+ throw new abort_error_1.AbortError(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
153
154
  }
154
155
  const { renderId, selectorRegions, ...baseTarget } = await client.render({ request, signal });
155
156
  const baseSettings = getBaseCheckSettings({
@@ -163,28 +164,27 @@ function makeCheck({ spec, getEyes, client, test, signal, target: defaultTarget,
163
164
  baseTarget.name = snapshotTitle;
164
165
  if (signal.aborted) {
165
166
  logger.warn('Command "check" was aborted after rendering');
166
- throw new Error('Command "check" was aborted after rendering');
167
+ throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
167
168
  }
168
169
  else if (eyes.aborted) {
169
170
  logger.warn(`Renderer with id ${rendererId} was aborted during one of the previous steps`);
170
- throw new Error(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
171
+ throw new abort_error_1.AbortError(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
171
172
  }
172
173
  const [result] = await eyes.check({ target: baseTarget, settings: baseSettings, logger });
173
174
  if (eyes.aborted) {
174
175
  logger.warn(`Renderer with id ${rendererId} was aborted during one of the previous steps`);
175
- throw new Error(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
176
+ throw new abort_error_1.AbortError(`Renderer with id "${rendererId}" was aborted during one of the previous steps`);
176
177
  }
177
178
  return { ...result, eyes, renderer };
178
179
  }
179
180
  catch (error) {
180
- error.eyes = eyes;
181
181
  await eyes.abort();
182
+ error.info = { eyes };
182
183
  throw error;
183
184
  }
184
185
  }
185
186
  catch (error) {
186
- error.userTestId = test.userTestId;
187
- error.renderer = renderer;
187
+ error.info = { ...error.info, userTestId: test.userTestId, renderer };
188
188
  throw error;
189
189
  }
190
190
  });
package/dist/ufg/close.js CHANGED
@@ -11,13 +11,13 @@ function makeClose({ storage, logger: defaultLogger }) {
11
11
  value = result.value;
12
12
  }
13
13
  else {
14
- value = result.reason;
14
+ value = result.reason.info;
15
15
  error !== null && error !== void 0 ? error : (error = result.reason);
16
16
  }
17
17
  return eyes.set(value.eyes, value.renderer);
18
18
  }, new Map());
19
19
  if (error) {
20
- await Promise.all(Array.from(eyes.entries(), async ([eyes]) => eyes.abort({ logger })));
20
+ await Promise.all(Array.from(eyes.entries(), async ([eyes]) => eyes === null || eyes === void 0 ? void 0 : eyes.abort({ logger })));
21
21
  throw error;
22
22
  }
23
23
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -86,7 +86,7 @@
86
86
  "@typescript-eslint/parser": "^5.38.0",
87
87
  "eslint": "^8.23.1",
88
88
  "eslint-config-prettier": "^8.5.0",
89
- "eslint-plugin-mocha-no-only": "^1.1.1",
89
+ "eslint-plugin-no-only-tests": "^3.0.0",
90
90
  "eslint-plugin-node": "^11.1.0",
91
91
  "eslint-plugin-prettier": "^4.0.0",
92
92
  "husky": "^4.3.7",
@@ -0,0 +1,3 @@
1
+ export declare class AbortError extends Error {
2
+ info: Record<string, any>;
3
+ }
@@ -0,0 +1,6 @@
1
+ import { CoreError } from '@applitools/core-base';
2
+ export declare class InternalError extends CoreError {
3
+ constructor(error: Error & {
4
+ info?: Record<string, any>;
5
+ });
6
+ }