@applitools/core 1.2.8 → 1.2.10

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.
@@ -32,7 +32,8 @@ const extract_text_1 = require("./extract-text");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
33
  function makeOpenEyes({ spec, core, logger: defaultLogger, }) {
34
34
  return async function openEyes({ target, settings, logger = defaultLogger, }) {
35
- var _a, _b, _c;
35
+ var _a, _b, _c, _d, _e;
36
+ var _f;
36
37
  logger.log(`Command "openEyes" is called with ${(spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? 'default driver and' : ''} settings`, settings);
37
38
  // TODO driver custom config
38
39
  const driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target))
@@ -47,8 +48,13 @@ function makeOpenEyes({ spec, core, logger: defaultLogger, }) {
47
48
  else {
48
49
  await driver.setViewportSize(settings.environment.viewportSize);
49
50
  }
50
- if (!settings.environment.userAgent && driver.isWeb) {
51
- settings.environment.userAgent = driver.userAgent;
51
+ if (driver.isWeb) {
52
+ (_b = (_f = settings.environment).userAgent) !== null && _b !== void 0 ? _b : (_f.userAgent = driver.userAgent);
53
+ if (driver.isChromium &&
54
+ ((driver.isWindows && Number.parseInt(driver.browserVersion) >= 107) ||
55
+ (driver.isMac && Number.parseInt(driver.browserVersion) >= 90))) {
56
+ settings.environment.os = `${driver.platformName} ${(_c = driver.platformVersion) !== null && _c !== void 0 ? _c : ''}`.trim();
57
+ }
52
58
  }
53
59
  if (!settings.environment.deviceName && driver.deviceName) {
54
60
  settings.environment.deviceName = driver.deviceName;
@@ -56,10 +62,10 @@ function makeOpenEyes({ spec, core, logger: defaultLogger, }) {
56
62
  if (!settings.environment.os && driver.isNative && driver.platformName) {
57
63
  settings.environment.os = driver.platformName;
58
64
  if (!settings.keepPlatformNameAsIs) {
59
- if ((_b = settings.environment.os) === null || _b === void 0 ? void 0 : _b.startsWith('android')) {
65
+ if ((_d = settings.environment.os) === null || _d === void 0 ? void 0 : _d.startsWith('android')) {
60
66
  settings.environment.os = `Android${settings.environment.os.slice(7)}`;
61
67
  }
62
- if ((_c = settings.environment.os) === null || _c === void 0 ? void 0 : _c.startsWith('ios')) {
68
+ if ((_e = settings.environment.os) === null || _e === void 0 ? void 0 : _e.startsWith('ios')) {
63
69
  settings.environment.os = `iOS${settings.environment.os.slice(3)}`;
64
70
  }
65
71
  }
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.takeDomCapture = void 0;
7
7
  const dom_capture_1 = require("@applitools/dom-capture");
8
- const execute_poll_script_1 = require("../../utils/execute-poll-script");
9
8
  const req_1 = __importDefault(require("@applitools/req"));
10
9
  async function takeDomCapture({ driver, settings, logger, }) {
11
10
  var _a;
@@ -15,18 +14,12 @@ async function takeDomCapture({ driver, settings, logger, }) {
15
14
  chunkByteLength: (_a = settings === null || settings === void 0 ? void 0 : settings.chunkByteLength) !== null && _a !== void 0 ? _a : (Number(process.env.APPLITOOLS_SCRIPT_RESULT_MAX_BYTE_LENGTH) || (driver.isIOS ? 100000 : 250 * 1024 * 1024)),
16
15
  };
17
16
  const scripts = {
18
- main: {
19
- script: canExecuteOnlyFunctionScripts
20
- ? require('@applitools/dom-capture').captureDomPoll
21
- : `return (${isLegacyBrowser ? await (0, dom_capture_1.getCaptureDomPollForIE)() : await (0, dom_capture_1.getCaptureDomPoll)()}).apply(null, arguments);`,
22
- args: [arg],
23
- },
24
- poll: {
25
- script: canExecuteOnlyFunctionScripts
26
- ? require('@applitools/dom-capture').pollResult
27
- : `return (${isLegacyBrowser ? await (0, dom_capture_1.getPollResultForIE)() : await (0, dom_capture_1.getPollResult)()}).apply(null, arguments);`,
28
- args: [arg],
29
- },
17
+ main: canExecuteOnlyFunctionScripts
18
+ ? require('@applitools/dom-capture').captureDomPoll
19
+ : `return (${isLegacyBrowser ? await (0, dom_capture_1.getCaptureDomPollForIE)() : await (0, dom_capture_1.getCaptureDomPoll)()}).apply(null, arguments);`,
20
+ poll: canExecuteOnlyFunctionScripts
21
+ ? require('@applitools/dom-capture').pollResult
22
+ : `return (${isLegacyBrowser ? await (0, dom_capture_1.getPollResultForIE)() : await (0, dom_capture_1.getPollResult)()}).apply(null, arguments);`,
30
23
  };
31
24
  const url = await driver.getUrl();
32
25
  const dom = await captureContextDom(driver.mainContext);
@@ -34,11 +27,11 @@ async function takeDomCapture({ driver, settings, logger, }) {
34
27
  return dom;
35
28
  async function captureContextDom(context) {
36
29
  var _a, _b;
37
- const capture = await (0, execute_poll_script_1.executePollScript)({
38
- context,
39
- scripts,
40
- settings: { executionTimeout: (_a = settings === null || settings === void 0 ? void 0 : settings.executionTimeout) !== null && _a !== void 0 ? _a : 5 * 60 * 1000, pollTimeout: (_b = settings === null || settings === void 0 ? void 0 : settings.pollTimeout) !== null && _b !== void 0 ? _b : 200 },
41
- logger,
30
+ const capture = await context.executePoll(scripts, {
31
+ main: arg,
32
+ poll: arg,
33
+ executionTimeout: (_a = settings === null || settings === void 0 ? void 0 : settings.executionTimeout) !== null && _a !== void 0 ? _a : 5 * 60 * 1000,
34
+ pollTimeout: (_b = settings === null || settings === void 0 ? void 0 : settings.pollTimeout) !== null && _b !== void 0 ? _b : 200,
42
35
  });
43
36
  if (!capture)
44
37
  return {};
package/dist/close.js CHANGED
@@ -14,7 +14,23 @@ function makeClose({ eyes, logger: defaultLogger, }) {
14
14
  throw new test_error_1.TestError(result);
15
15
  });
16
16
  }
17
- return results;
17
+ return results.length > 0
18
+ ? results
19
+ : [
20
+ {
21
+ userTestId: eyes.test.userTestId,
22
+ name: '',
23
+ steps: 0,
24
+ matches: 0,
25
+ mismatches: 0,
26
+ missing: 0,
27
+ exactMatches: 0,
28
+ strictMatches: 0,
29
+ contentMatches: 0,
30
+ layoutMatches: 0,
31
+ noneMatches: 0,
32
+ },
33
+ ];
18
34
  };
19
35
  }
20
36
  exports.makeClose = makeClose;
@@ -30,7 +30,7 @@ const core_2 = require("./ufg/core");
30
30
  const open_eyes_1 = require("./open-eyes");
31
31
  const close_manager_1 = require("./close-manager");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
- function makeMakeManager({ spec, core, concurrency: defaultConcurrency, agentId: defaultAgentId, cwd = process.cwd(), logger: defaultLogger, }) {
33
+ function makeMakeManager({ spec, core, concurrency: defaultConcurrency = utils.general.getEnvValue('CONCURRENCY', 'number'), agentId: defaultAgentId, cwd = process.cwd(), logger: defaultLogger, }) {
34
34
  return async function makeManager({ type, concurrency = defaultConcurrency, legacyConcurrency, agentId = type === 'ufg' ? defaultAgentId === null || defaultAgentId === void 0 ? void 0 : defaultAgentId.replace(/(\/\d)/, '.visualgrid$1') : defaultAgentId, logger = defaultLogger, } = {}) {
35
35
  core !== null && core !== void 0 ? core : (core = (0, core_base_1.makeCore)({ agentId, cwd, logger }));
36
36
  concurrency !== null && concurrency !== void 0 ? concurrency : (concurrency = utils.types.isInteger(legacyConcurrency) ? legacyConcurrency * 5 : 5);
@@ -25,7 +25,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.extractCrossFrames = exports.deserializeDomSnapshot = exports.takeDomSnapshot = void 0;
27
27
  const dom_snapshot_1 = require("@applitools/dom-snapshot");
28
- const execute_poll_script_1 = require("../../utils/execute-poll-script");
29
28
  const utils = __importStar(require("@applitools/utils"));
30
29
  async function takeDomSnapshot({ context, settings, logger, }) {
31
30
  var _a;
@@ -42,18 +41,12 @@ async function takeDomSnapshot({ context, settings, logger, }) {
42
41
  showLogs: settings === null || settings === void 0 ? void 0 : settings.showLogs,
43
42
  };
44
43
  const scripts = {
45
- main: {
46
- script: canExecuteOnlyFunctionScripts
47
- ? require('@applitools/dom-snapshot').processPagePoll
48
- : `return (${isLegacyBrowser ? await (0, dom_snapshot_1.getProcessPagePollForIE)() : await (0, dom_snapshot_1.getProcessPagePoll)()}).apply(null, arguments);`,
49
- args: [arg],
50
- },
51
- poll: {
52
- script: canExecuteOnlyFunctionScripts
53
- ? require('@applitools/dom-snapshot').pollResult
54
- : `return (${isLegacyBrowser ? await (0, dom_snapshot_1.getPollResultForIE)() : await (0, dom_snapshot_1.getPollResult)()}).apply(null, arguments);`,
55
- args: [arg],
56
- },
44
+ main: canExecuteOnlyFunctionScripts
45
+ ? require('@applitools/dom-snapshot').processPagePoll
46
+ : `return (${isLegacyBrowser ? await (0, dom_snapshot_1.getProcessPagePollForIE)() : await (0, dom_snapshot_1.getProcessPagePoll)()}).apply(null, arguments);`,
47
+ poll: canExecuteOnlyFunctionScripts
48
+ ? require('@applitools/dom-snapshot').pollResult
49
+ : `return (${isLegacyBrowser ? await (0, dom_snapshot_1.getPollResultForIE)() : await (0, dom_snapshot_1.getPollResult)()}).apply(null, arguments);`,
57
50
  };
58
51
  const cookies = driver.features.allCookies ? await driver.getCookies().catch(() => []) : [];
59
52
  const snapshot = await takeContextDomSnapshot({ context });
@@ -65,11 +58,11 @@ async function takeDomSnapshot({ context, settings, logger, }) {
65
58
  if (!driver.features.allCookies) {
66
59
  cookies.push(...(await context.getCookies()));
67
60
  }
68
- const snapshot = await (0, execute_poll_script_1.executePollScript)({
69
- context,
70
- scripts,
71
- settings: { executionTimeout: (_a = settings === null || settings === void 0 ? void 0 : settings.executionTimeout) !== null && _a !== void 0 ? _a : 5 * 60 * 1000, pollTimeout: (_b = settings === null || settings === void 0 ? void 0 : settings.pollTimeout) !== null && _b !== void 0 ? _b : 200 },
72
- logger,
61
+ const snapshot = await context.executePoll(scripts, {
62
+ main: arg,
63
+ poll: arg,
64
+ executionTimeout: (_a = settings === null || settings === void 0 ? void 0 : settings.executionTimeout) !== null && _a !== void 0 ? _a : 5 * 60 * 1000,
65
+ pollTimeout: (_b = settings === null || settings === void 0 ? void 0 : settings.pollTimeout) !== null && _b !== void 0 ? _b : 200,
73
66
  });
74
67
  const crossFrames = extractCrossFrames({ snapshot, logger });
75
68
  for (const { reference, parentSnapshot, cdtNode } of crossFrames) {
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.waitForLazyLoad = void 0;
4
4
  const snippets_1 = require("@applitools/snippets");
5
- const execute_poll_script_1 = require("./execute-poll-script");
6
5
  async function waitForLazyLoad({ driver, settings, logger, }) {
7
6
  var _a, _b, _c, _d, _e;
8
7
  logger.log('lazy loading the page before capturing a screenshot');
@@ -11,15 +10,11 @@ async function waitForLazyLoad({ driver, settings, logger, }) {
11
10
  waitingTime: (_b = settings.waitingTime) !== null && _b !== void 0 ? _b : 2000,
12
11
  maxAmountToScroll: (_c = settings.maxAmountToScroll) !== null && _c !== void 0 ? _c : 15000,
13
12
  };
14
- const scripts = {
15
- main: { script: snippets_1.lazyLoad, args: [[arg]] },
16
- poll: { script: snippets_1.lazyLoad, args: [[]] },
17
- };
18
- await (0, execute_poll_script_1.executePollScript)({
19
- context: driver.currentContext,
20
- scripts,
21
- settings: { executionTimeout: 5 * 60 * 1000, pollTimeout: (_e = (_d = settings.pollTimeout) !== null && _d !== void 0 ? _d : settings.waitingTime) !== null && _e !== void 0 ? _e : 2000 },
22
- logger,
13
+ await driver.currentContext.executePoll(snippets_1.lazyLoad, {
14
+ main: [arg],
15
+ poll: [],
16
+ executionTimeout: 5 * 60 * 1000,
17
+ pollTimeout: (_e = (_d = settings.pollTimeout) !== null && _d !== void 0 ? _d : settings.waitingTime) !== null && _e !== void 0 ? _e : 2000,
23
18
  });
24
19
  }
25
20
  exports.waitForLazyLoad = waitForLazyLoad;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.2.8",
3
+ "version": "1.2.10",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -61,27 +61,27 @@
61
61
  }
62
62
  },
63
63
  "dependencies": {
64
- "@applitools/core-base": "1.1.9",
64
+ "@applitools/core-base": "1.1.13",
65
65
  "@applitools/dom-capture": "11.2.0",
66
- "@applitools/dom-snapshot": "4.7.0",
67
- "@applitools/driver": "1.11.3",
68
- "@applitools/logger": "1.1.28",
69
- "@applitools/nml-client": "1.3.7",
70
- "@applitools/req": "1.1.13",
71
- "@applitools/screenshoter": "3.7.4",
72
- "@applitools/snippets": "2.4.6",
73
- "@applitools/ufg-client": "1.1.3",
74
- "@applitools/utils": "1.3.14",
66
+ "@applitools/dom-snapshot": "4.7.1",
67
+ "@applitools/driver": "1.11.6",
68
+ "@applitools/logger": "1.1.30",
69
+ "@applitools/nml-client": "1.3.9",
70
+ "@applitools/req": "1.1.16",
71
+ "@applitools/screenshoter": "3.7.7",
72
+ "@applitools/snippets": "2.4.8",
73
+ "@applitools/ufg-client": "1.1.5",
74
+ "@applitools/utils": "1.3.16",
75
75
  "abort-controller": "3.0.0",
76
76
  "throat": "6.0.1"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@applitools/bongo": "^2.2.0",
80
80
  "@applitools/sdk-fake-eyes-server": "^2.1.3",
81
- "@applitools/spec-driver-puppeteer": "^1.1.20",
82
- "@applitools/spec-driver-selenium": "^1.5.6",
83
- "@applitools/spec-driver-webdriverio": "^1.4.4",
84
- "@applitools/test-server": "^1.1.9",
81
+ "@applitools/spec-driver-puppeteer": "^1.1.21",
82
+ "@applitools/spec-driver-selenium": "^1.5.7",
83
+ "@applitools/spec-driver-webdriverio": "^1.4.5",
84
+ "@applitools/test-server": "^1.1.10",
85
85
  "@applitools/test-utils": "^1.5.2",
86
86
  "@types/mocha": "^9.1.1",
87
87
  "@types/node": "12",
@@ -1,9 +1,10 @@
1
1
  import { type Driver } from '@applitools/driver';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type PollScriptSettings } from '../../utils/execute-poll-script';
4
3
  import { type Fetch } from '@applitools/req';
5
- export declare type DomCaptureSettings = Partial<PollScriptSettings> & {
4
+ export declare type DomCaptureSettings = {
6
5
  fetch?: Fetch;
6
+ executionTimeout?: number;
7
+ pollTimeout?: number;
7
8
  chunkByteLength?: number;
8
9
  };
9
10
  export declare function takeDomCapture<TDriver extends Driver<unknown, unknown, unknown, unknown>>({ driver, settings, logger, }: {
@@ -1,11 +1,12 @@
1
1
  import { type Logger } from '@applitools/logger';
2
2
  import { type Context } from '@applitools/driver';
3
3
  import { type DomSnapshot } from '@applitools/ufg-client';
4
- import { type PollScriptSettings } from '../../utils/execute-poll-script';
5
- export declare type DomSnapshotSettings = Partial<PollScriptSettings> & {
4
+ export declare type DomSnapshotSettings = {
6
5
  disableBrowserFetching?: boolean;
7
6
  skipResources?: string[];
8
7
  chunkByteLength?: number;
8
+ executionTimeout?: number;
9
+ pollTimeout?: number;
9
10
  showLogs?: boolean;
10
11
  };
11
12
  export declare function takeDomSnapshot<TContext extends Context<unknown, unknown, unknown, unknown>>({ context, settings, logger, }: {
@@ -1,10 +1,11 @@
1
1
  import { type Logger } from '@applitools/logger';
2
2
  import { type Driver } from '@applitools/driver';
3
- import { type PollScriptSettings } from './execute-poll-script';
4
- export declare type LazyLoadSettings = Partial<PollScriptSettings> & {
3
+ export declare type LazyLoadSettings = {
5
4
  scrollLength?: number;
6
5
  waitingTime?: number;
7
6
  maxAmountToScroll?: number;
7
+ executionTimeout?: number;
8
+ pollTimeout?: number;
8
9
  };
9
10
  export declare function waitForLazyLoad<TDriver extends Driver<unknown, unknown, unknown, unknown>>({ driver, settings, logger, }: {
10
11
  driver: TDriver;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.executePollScript = void 0;
27
- const core_base_1 = require("@applitools/core-base");
28
- const utils = __importStar(require("@applitools/utils"));
29
- async function executePollScript({ context, scripts, settings, logger, }) {
30
- logger.log('Executing poll script');
31
- let isExecutionTimedOut = false;
32
- const executionTimer = setTimeout(() => (isExecutionTimedOut = true), settings.executionTimeout);
33
- try {
34
- const { script, args = [] } = scripts.main;
35
- let response = deserialize(await context.execute(script, ...args));
36
- let chunks = '';
37
- while (!isExecutionTimedOut) {
38
- if (response.status === 'ERROR') {
39
- throw new core_base_1.CoreError(`Error during execute poll script: '${response.error}'`, {
40
- reason: 'poll script',
41
- error: response.error,
42
- });
43
- }
44
- else if (response.status === 'SUCCESS') {
45
- return response.value;
46
- }
47
- else if (response.status === 'SUCCESS_CHUNKED') {
48
- chunks += response.value;
49
- if (response.done)
50
- return deserialize(chunks);
51
- }
52
- else if (response.status === 'WIP') {
53
- await utils.general.sleep(settings.pollTimeout);
54
- }
55
- logger.log('Polling...');
56
- const { script, args = [] } = scripts.poll;
57
- response = deserialize(await context.execute(script, ...args));
58
- }
59
- throw new core_base_1.CoreError('Poll script execution is timed out', { reason: 'timeout' });
60
- }
61
- finally {
62
- clearTimeout(executionTimer);
63
- }
64
- function deserialize(json) {
65
- try {
66
- return JSON.parse(json);
67
- }
68
- catch (err) {
69
- const firstChars = json.slice(0, 100);
70
- const lastChars = json.slice(-100);
71
- throw new Error(`Response is not a valid JSON string. length: ${json.length}, first 100 chars: "${firstChars}", last 100 chars: "${lastChars}". error: ${err}`);
72
- }
73
- }
74
- }
75
- exports.executePollScript = executePollScript;
@@ -1,20 +0,0 @@
1
- import { type Context } from '@applitools/driver';
2
- import { type Logger } from '@applitools/logger';
3
- export declare type PollScriptSettings = {
4
- executionTimeout: number;
5
- pollTimeout: number;
6
- };
7
- declare type Script = {
8
- script: string | ((...args: any[]) => any);
9
- args: any[];
10
- };
11
- export declare function executePollScript<TContext extends Context<unknown, unknown, unknown, unknown>>({ context, scripts, settings, logger, }: {
12
- context: TContext;
13
- scripts: {
14
- main: Script;
15
- poll: Script;
16
- };
17
- settings: PollScriptSettings;
18
- logger: Logger;
19
- }): Promise<any>;
20
- export {};