@applitools/core 3.11.8 → 4.0.1
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/CHANGELOG.md +135 -0
- package/dist/abort.js +3 -3
- package/dist/automation/abort.js +7 -7
- package/dist/automation/close.js +7 -7
- package/dist/automation/get-results.js +2 -2
- package/dist/automation/utils/{extract-renderer-key.js → to-environment-key.js} +4 -8
- package/dist/automation/utils/uniquify-environments.js +27 -0
- package/dist/classic/check-and-close.js +36 -35
- package/dist/classic/check.js +36 -35
- package/dist/classic/get-base-eyes.js +3 -12
- package/dist/classic/open-eyes.js +7 -7
- package/dist/classic/utils/extract-default-environments.js +70 -0
- package/dist/classic/utils/take-screenshots.js +1 -1
- package/dist/close-batch.js +3 -3
- package/dist/close.js +3 -3
- package/dist/core.js +2 -2
- package/dist/delete-test.js +3 -3
- package/dist/extract-text.js +3 -3
- package/dist/get-account-info.js +3 -3
- package/dist/get-manager-results.js +1 -1
- package/dist/locate-text.js +3 -3
- package/dist/locate.js +3 -3
- package/dist/log-event.js +3 -3
- package/dist/open-eyes.js +18 -18
- package/dist/ufg/check-and-close.js +39 -39
- package/dist/ufg/check.js +39 -39
- package/dist/ufg/get-base-eyes.js +4 -4
- package/dist/ufg/open-eyes.js +5 -5
- package/dist/ufg/utils/{extract-default-renderers.js → extract-default-environment.js} +3 -3
- package/dist/ufg/utils/take-dom-snapshots.js +17 -17
- package/dist/universal/core-server.js +12 -13
- package/dist/utils/{extract-environment.js → extract-test-environment.js} +3 -3
- package/package.json +28 -25
- package/types/abort.d.ts +3 -3
- package/types/automation/abort.d.ts +3 -3
- package/types/automation/close.d.ts +3 -3
- package/types/automation/types.d.ts +23 -26
- package/types/automation/utils/to-environment-key.d.ts +2 -0
- package/types/automation/utils/uniquify-environments.d.ts +2 -0
- package/types/classic/check-and-close.d.ts +5 -5
- package/types/classic/check.d.ts +3 -3
- package/types/classic/utils/extract-default-environments.d.ts +9 -0
- package/types/classic/utils/take-screenshots.d.ts +2 -2
- package/types/close.d.ts +3 -3
- package/types/get-typed-eyes.d.ts +1 -4
- package/types/types.d.ts +1 -1
- package/types/ufg/check-and-close.d.ts +5 -5
- package/types/ufg/check.d.ts +3 -3
- package/types/ufg/core.d.ts +1 -1
- package/types/ufg/utils/extract-default-environment.d.ts +5 -0
- package/types/ufg/utils/take-dom-snapshots.d.ts +3 -4
- package/types/utils/extract-test-environment.d.ts +2 -0
- package/dist/automation/utils/uniquify-renderers.js +0 -27
- package/dist/classic/utils/extract-default-renderers.js +0 -72
- package/types/automation/utils/extract-renderer-key.d.ts +0 -2
- package/types/automation/utils/uniquify-renderers.d.ts +0 -2
- package/types/classic/utils/extract-default-renderers.d.ts +0 -9
- package/types/ufg/utils/extract-default-renderers.d.ts +0 -5
- package/types/utils/extract-environment.d.ts +0 -2
|
@@ -24,11 +24,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeGetBaseEyes = void 0;
|
|
27
|
-
const
|
|
27
|
+
const to_environment_key_1 = require("../automation/utils/to-environment-key");
|
|
28
28
|
const utils = __importStar(require("@applitools/utils"));
|
|
29
29
|
function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger, }) {
|
|
30
30
|
const getBaseEyesWithCache = utils.general.wrap(getBaseEyes, (getBaseEyes, options) => {
|
|
31
|
-
const key = (0,
|
|
31
|
+
const key = (0, to_environment_key_1.toEnvironmentKey)(options.settings.environment);
|
|
32
32
|
let item = eyes.storage.get(key);
|
|
33
33
|
if (!item) {
|
|
34
34
|
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
@@ -42,19 +42,10 @@ function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger,
|
|
|
42
42
|
async function getBaseEyes({ settings, logger = mainLogger, }) {
|
|
43
43
|
logger = logger.extend(mainLogger);
|
|
44
44
|
logger.log(`Command "getBaseEyes" is called with settings`, settings);
|
|
45
|
-
let environment;
|
|
46
|
-
if (utils.types.has(settings.renderer, 'environment')) {
|
|
47
|
-
environment = settings.renderer.environment;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// NOTE: ios and android handled by nml-client
|
|
51
|
-
// TODO: chrome emulation, desktop
|
|
52
|
-
environment = { renderer: settings.renderer };
|
|
53
|
-
}
|
|
54
45
|
return eyes.core.base.openEyes({
|
|
55
46
|
settings: {
|
|
56
47
|
...defaultSettings,
|
|
57
|
-
environment: { ...defaultSettings.environment, ...
|
|
48
|
+
environment: { ...defaultSettings.environment, ...settings.environment },
|
|
58
49
|
},
|
|
59
50
|
logger,
|
|
60
51
|
});
|
|
@@ -31,7 +31,7 @@ const check_and_close_1 = require("./check-and-close");
|
|
|
31
31
|
const close_1 = require("../automation/close");
|
|
32
32
|
const abort_1 = require("../automation/abort");
|
|
33
33
|
const get_results_1 = require("../automation/get-results");
|
|
34
|
-
const
|
|
34
|
+
const extract_default_environments_1 = require("./utils/extract-default-environments");
|
|
35
35
|
const abort_controller_1 = require("abort-controller");
|
|
36
36
|
const utils = __importStar(require("@applitools/utils"));
|
|
37
37
|
function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
@@ -50,7 +50,7 @@ function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
|
50
50
|
settings.environment.ecSessionId = (_c = (await driver.getSessionId())) !== null && _c !== void 0 ? _c : undefined;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
const
|
|
53
|
+
const environments = await (0, extract_default_environments_1.extractDefaultEnvironments)({ driver, settings });
|
|
54
54
|
const controller = new abort_controller_1.AbortController();
|
|
55
55
|
const account = await core.getAccountInfo({ settings, logger });
|
|
56
56
|
return utils.general.extend({}, eyes => {
|
|
@@ -66,16 +66,16 @@ function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
|
66
66
|
ufgServer: account.ufgServer,
|
|
67
67
|
uploadUrl: account.uploadUrl,
|
|
68
68
|
stitchingServiceUrl: account.stitchingServiceUrl,
|
|
69
|
-
|
|
69
|
+
supportedEnvironmentsUrl: account.supportedEnvironmentsUrl,
|
|
70
70
|
account,
|
|
71
71
|
},
|
|
72
72
|
running: true,
|
|
73
73
|
storage,
|
|
74
74
|
getBaseEyes: (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, logger }),
|
|
75
|
-
check: (0, check_1.makeCheck)({ eyes, target: driver,
|
|
76
|
-
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver,
|
|
77
|
-
close: (0, close_1.makeClose)({ eyes, target: driver,
|
|
78
|
-
abort: (0, abort_1.makeAbort)({ eyes, target: driver,
|
|
75
|
+
check: (0, check_1.makeCheck)({ eyes, target: driver, environments, spec, signal: controller.signal, logger }),
|
|
76
|
+
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, environments, spec, signal: controller.signal, logger }),
|
|
77
|
+
close: (0, close_1.makeClose)({ eyes, target: driver, environments, logger }),
|
|
78
|
+
abort: (0, abort_1.makeAbort)({ eyes, target: driver, environments, spec, controller, logger }),
|
|
79
79
|
getResults: (0, get_results_1.makeGetResults)({ eyes, logger }),
|
|
80
80
|
};
|
|
81
81
|
});
|
|
@@ -0,0 +1,70 @@
|
|
|
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.extractDefaultEnvironments = void 0;
|
|
27
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
+
async function extractDefaultEnvironments({ driver, settings, }) {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
const environment = {};
|
|
31
|
+
if (!driver)
|
|
32
|
+
return [(_a = settings === null || settings === void 0 ? void 0 : settings.environment) !== null && _a !== void 0 ? _a : environment];
|
|
33
|
+
const currentContext = driver.currentContext;
|
|
34
|
+
try {
|
|
35
|
+
const driverEnvironment = await driver.getEnvironment();
|
|
36
|
+
const viewport = await driver.getViewport();
|
|
37
|
+
const size = await driver.getViewportSize();
|
|
38
|
+
environment.viewportSize = utils.geometry.scale(size, viewport.viewportScale);
|
|
39
|
+
if (driverEnvironment.isEC)
|
|
40
|
+
environment.ecSessionId = (_b = (await driver.getSessionId())) !== null && _b !== void 0 ? _b : undefined;
|
|
41
|
+
if (driverEnvironment.isWeb)
|
|
42
|
+
environment.userAgent = await driver.getUserAgentLegacy();
|
|
43
|
+
if (driverEnvironment.deviceName)
|
|
44
|
+
environment.deviceName = driverEnvironment.deviceName;
|
|
45
|
+
if (driverEnvironment.isNative && driverEnvironment.platformName) {
|
|
46
|
+
environment.os = driverEnvironment.platformName;
|
|
47
|
+
if (driverEnvironment.platformVersion)
|
|
48
|
+
environment.os += ` ${driverEnvironment.platformVersion}`;
|
|
49
|
+
if (!(settings === null || settings === void 0 ? void 0 : settings.keepPlatformNameAsIs)) {
|
|
50
|
+
if (/^android/i.test(environment.os)) {
|
|
51
|
+
environment.os = `Android${environment.os.slice(7)}`;
|
|
52
|
+
}
|
|
53
|
+
if (/^ios/i.test(environment.os)) {
|
|
54
|
+
environment.os = `iOS${environment.os.slice(3)}`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (driverEnvironment.isReliable &&
|
|
59
|
+
driverEnvironment.isChromium &&
|
|
60
|
+
((driverEnvironment.isWindows && Number.parseInt(driverEnvironment.browserVersion) >= 107) ||
|
|
61
|
+
(driverEnvironment.isMac && Number.parseInt(driverEnvironment.browserVersion) >= 90))) {
|
|
62
|
+
environment.os = `${driverEnvironment.platformName} ${(_c = driverEnvironment.platformVersion) !== null && _c !== void 0 ? _c : ''}`.trim();
|
|
63
|
+
}
|
|
64
|
+
return [environment];
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
await currentContext.focus();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.extractDefaultEnvironments = extractDefaultEnvironments;
|
|
@@ -55,6 +55,6 @@ async function takeScreenshots({ driver, settings, logger, }) {
|
|
|
55
55
|
: await driver.getViewportSize();
|
|
56
56
|
}
|
|
57
57
|
await screenshot.restoreState();
|
|
58
|
-
return new Array(settings.
|
|
58
|
+
return new Array(settings.environments.length).fill(baseTarget);
|
|
59
59
|
}
|
|
60
60
|
exports.takeScreenshots = takeScreenshots;
|
package/dist/close-batch.js
CHANGED
|
@@ -29,9 +29,9 @@ function makeCloseBatch({ core, logger: mainLogger }) {
|
|
|
29
29
|
return async function closeBatch({ settings, logger = mainLogger, }) {
|
|
30
30
|
logger = logger.extend(mainLogger, { tags: [`close-batch-${utils.general.shortid()}`] });
|
|
31
31
|
(utils.types.isArray(settings) ? settings : [settings]).forEach(settings => {
|
|
32
|
-
var _a, _b, _c, _d
|
|
33
|
-
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (
|
|
34
|
-
(
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
|
+
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (_c = (_b = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
|
|
34
|
+
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
35
35
|
});
|
|
36
36
|
return core.base.closeBatch({ settings, logger });
|
|
37
37
|
};
|
package/dist/close.js
CHANGED
|
@@ -25,15 +25,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeClose = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function makeClose({ eyes,
|
|
28
|
+
function makeClose({ eyes, environments: defaultEnvironments, logger: mainLogger, }) {
|
|
29
29
|
return async function close({ settings, config, logger = mainLogger, } = {}) {
|
|
30
30
|
var _a, _b;
|
|
31
31
|
logger = logger.extend(mainLogger, { tags: [`close-${utils.general.shortid()}`] });
|
|
32
32
|
const typedEyes = await eyes.getTypedEyes({ logger });
|
|
33
33
|
settings = { ...config === null || config === void 0 ? void 0 : config.close, ...settings };
|
|
34
34
|
(_a = settings.updateBaselineIfNew) !== null && _a !== void 0 ? _a : (settings.updateBaselineIfNew = true);
|
|
35
|
-
if (typedEyes.type === 'classic' && !utils.types.isEmpty(
|
|
36
|
-
(_b = settings.
|
|
35
|
+
if (typedEyes.type === 'classic' && !utils.types.isEmpty(defaultEnvironments)) {
|
|
36
|
+
(_b = settings.environments) !== null && _b !== void 0 ? _b : (settings.environments = defaultEnvironments);
|
|
37
37
|
}
|
|
38
38
|
await typedEyes.close({ settings, logger });
|
|
39
39
|
};
|
package/dist/core.js
CHANGED
|
@@ -38,11 +38,11 @@ const open_eyes_1 = require("./open-eyes");
|
|
|
38
38
|
const make_manager_1 = require("./make-manager");
|
|
39
39
|
const close_batch_1 = require("./close-batch");
|
|
40
40
|
const delete_test_1 = require("./delete-test");
|
|
41
|
-
const
|
|
41
|
+
const extract_test_environment_1 = require("./utils/extract-test-environment");
|
|
42
42
|
const utils = __importStar(require("@applitools/utils"));
|
|
43
43
|
function makeCore({ spec, clients, concurrency, base: defaultBase, environment: defaultEnvironment, agentId = 'core', cwd = process.cwd(), logger: defaultLogger, asyncCache, } = {}) {
|
|
44
44
|
const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: 'core' } });
|
|
45
|
-
const environment = (0,
|
|
45
|
+
const environment = (0, extract_test_environment_1.extractTestEnvironment)(defaultEnvironment);
|
|
46
46
|
logger.log(`Core is initialized ${defaultBase ? 'with' : 'without'} custom base core and environment`, environment);
|
|
47
47
|
const base = defaultBase !== null && defaultBase !== void 0 ? defaultBase : (0, core_base_1.makeCore)({ agentId, cwd, logger });
|
|
48
48
|
return utils.general.extend(base, core => {
|
package/dist/delete-test.js
CHANGED
|
@@ -29,9 +29,9 @@ function makeDeleteTest({ core, logger: mainLogger }) {
|
|
|
29
29
|
return async function deleteTest({ settings, logger = mainLogger, }) {
|
|
30
30
|
logger = logger.extend(mainLogger, { tags: [`delete-test-${utils.general.shortid()}`] });
|
|
31
31
|
(utils.types.isArray(settings) ? settings : [settings]).forEach(settings => {
|
|
32
|
-
var _a, _b, _c, _d
|
|
33
|
-
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (
|
|
34
|
-
(
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
|
+
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (_c = (_b = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
|
|
34
|
+
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
35
35
|
});
|
|
36
36
|
return core.base.deleteTest({ settings, logger });
|
|
37
37
|
};
|
package/dist/extract-text.js
CHANGED
|
@@ -31,11 +31,11 @@ function makeExtractText({ spec, core, logger: mainLogger }) {
|
|
|
31
31
|
logger = logger.extend(mainLogger, { tags: [`extract-text-${utils.general.shortid()}`] });
|
|
32
32
|
settings = utils.types.isArray(settings) ? settings : [settings];
|
|
33
33
|
settings = settings.map(settings => {
|
|
34
|
-
var _a, _b, _c, _d, _e
|
|
34
|
+
var _a, _b, _c, _d, _e;
|
|
35
35
|
settings = { ...config === null || config === void 0 ? void 0 : config.open, ...config === null || config === void 0 ? void 0 : config.screenshot, ...settings };
|
|
36
36
|
(_a = settings.userCommandId) !== null && _a !== void 0 ? _a : (settings.userCommandId = `extract-text--${utils.general.guid()}`);
|
|
37
|
-
(_b = settings.eyesServerUrl) !== null && _b !== void 0 ? _b : (settings.eyesServerUrl = (
|
|
38
|
-
(
|
|
37
|
+
(_b = settings.eyesServerUrl) !== null && _b !== void 0 ? _b : (settings.eyesServerUrl = (_d = (_c = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _c !== void 0 ? _c : utils.general.getEnvValue('SERVER_URL')) !== null && _d !== void 0 ? _d : 'https://eyesapi.applitools.com');
|
|
38
|
+
(_e = settings.apiKey) !== null && _e !== void 0 ? _e : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
39
39
|
return settings;
|
|
40
40
|
});
|
|
41
41
|
const classicCore = (0, core_1.makeCore)({ spec, base: core.base, logger });
|
package/dist/get-account-info.js
CHANGED
|
@@ -27,10 +27,10 @@ exports.makeGetAccountInfo = void 0;
|
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
28
|
function makeGetAccountInfo({ core, logger: mainLogger }) {
|
|
29
29
|
return async function getAccountInfo({ settings, logger = mainLogger, }) {
|
|
30
|
-
var _a, _b, _c, _d
|
|
30
|
+
var _a, _b, _c, _d;
|
|
31
31
|
logger = logger.extend(mainLogger, { tags: [`get-account-info-${utils.general.shortid()}`] });
|
|
32
|
-
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (
|
|
33
|
-
(
|
|
32
|
+
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (_c = (_b = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
|
|
33
|
+
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
34
34
|
return core.base.getAccountInfo({ settings, logger });
|
|
35
35
|
};
|
|
36
36
|
}
|
|
@@ -40,7 +40,7 @@ function makeGetManagerResults({ core, storage, logger: mainLogger, }) {
|
|
|
40
40
|
result,
|
|
41
41
|
error: result.status !== 'Passed' ? new test_error_1.TestError(result) : undefined,
|
|
42
42
|
userTestId: result.userTestId,
|
|
43
|
-
|
|
43
|
+
environment: result.environment,
|
|
44
44
|
})));
|
|
45
45
|
});
|
|
46
46
|
}
|
package/dist/locate-text.js
CHANGED
|
@@ -28,11 +28,11 @@ const core_1 = require("./classic/core");
|
|
|
28
28
|
const utils = __importStar(require("@applitools/utils"));
|
|
29
29
|
function makeLocateText({ spec, core, logger: mainLogger }) {
|
|
30
30
|
return async function locateText({ target, settings, config, logger = mainLogger, }) {
|
|
31
|
-
var _a, _b, _c, _d
|
|
31
|
+
var _a, _b, _c, _d;
|
|
32
32
|
logger = logger.extend(mainLogger, { tags: [`locate-text-${utils.general.shortid()}`] });
|
|
33
33
|
settings = { ...config === null || config === void 0 ? void 0 : config.open, ...config === null || config === void 0 ? void 0 : config.screenshot, ...settings };
|
|
34
|
-
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (
|
|
35
|
-
(
|
|
34
|
+
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (_c = (_b = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
|
|
35
|
+
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
36
36
|
const classicCore = (0, core_1.makeCore)({ spec, base: core.base, logger });
|
|
37
37
|
const results = await classicCore.locateText({ target, settings, logger });
|
|
38
38
|
return results;
|
package/dist/locate.js
CHANGED
|
@@ -28,11 +28,11 @@ const core_1 = require("./classic/core");
|
|
|
28
28
|
const utils = __importStar(require("@applitools/utils"));
|
|
29
29
|
function makeLocate({ spec, core, logger: mainLogger }) {
|
|
30
30
|
return async function locate({ target, settings, config, logger = mainLogger, }) {
|
|
31
|
-
var _a, _b, _c, _d
|
|
31
|
+
var _a, _b, _c, _d;
|
|
32
32
|
logger = logger.extend(mainLogger, { tags: [`locate-${utils.general.shortid()}`] });
|
|
33
33
|
settings = { ...config === null || config === void 0 ? void 0 : config.open, ...config === null || config === void 0 ? void 0 : config.screenshot, ...settings };
|
|
34
|
-
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (
|
|
35
|
-
(
|
|
34
|
+
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (_c = (_b = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
|
|
35
|
+
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
36
36
|
const classicCore = (0, core_1.makeCore)({ spec, base: core.base, logger });
|
|
37
37
|
const results = await classicCore.locate({ target, settings, logger });
|
|
38
38
|
return results;
|
package/dist/log-event.js
CHANGED
|
@@ -29,9 +29,9 @@ function makeLogEvent({ core, logger: mainLogger }) {
|
|
|
29
29
|
return async function logEvent({ settings, logger = mainLogger, }) {
|
|
30
30
|
logger = logger.extend(mainLogger, { tags: [`log-event-${utils.general.shortid()}`] });
|
|
31
31
|
(utils.types.isArray(settings) ? settings : [settings]).forEach(settings => {
|
|
32
|
-
var _a, _b, _c, _d
|
|
33
|
-
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (
|
|
34
|
-
(
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
|
+
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : (settings.eyesServerUrl = (_c = (_b = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
|
|
34
|
+
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
35
35
|
});
|
|
36
36
|
return core.base.logEvent({ settings, logger });
|
|
37
37
|
};
|
package/dist/open-eyes.js
CHANGED
|
@@ -36,27 +36,27 @@ const get_eyes_results_1 = require("./get-eyes-results");
|
|
|
36
36
|
const utils = __importStar(require("@applitools/utils"));
|
|
37
37
|
function makeOpenEyes({ type: defaultType = 'classic', clients, concurrency, batch, core, cores, spec, environment, logger: mainLogger, asyncCache, }) {
|
|
38
38
|
return async function openEyes({ type = defaultType, settings, config, target, logger = mainLogger, }) {
|
|
39
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
40
|
-
var _v, _w, _x
|
|
39
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
40
|
+
var _u, _v, _w, _x;
|
|
41
41
|
logger = logger.extend(mainLogger, { tags: [`eyes-${type}-${utils.general.shortid()}`] });
|
|
42
42
|
settings = { ...config === null || config === void 0 ? void 0 : config.open, ...settings };
|
|
43
43
|
(_a = settings.userTestId) !== null && _a !== void 0 ? _a : (settings.userTestId = `${settings.testName}--${utils.general.guid()}`);
|
|
44
|
-
(_b = settings.eyesServerUrl) !== null && _b !== void 0 ? _b : (settings.eyesServerUrl = (
|
|
45
|
-
(
|
|
46
|
-
(
|
|
44
|
+
(_b = settings.eyesServerUrl) !== null && _b !== void 0 ? _b : (settings.eyesServerUrl = (_d = (_c = utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _c !== void 0 ? _c : utils.general.getEnvValue('SERVER_URL')) !== null && _d !== void 0 ? _d : 'https://eyesapi.applitools.com');
|
|
45
|
+
(_e = settings.apiKey) !== null && _e !== void 0 ? _e : (settings.apiKey = utils.general.getEnvValue('API_KEY'));
|
|
46
|
+
(_f = settings.useDnsCache) !== null && _f !== void 0 ? _f : (settings.useDnsCache = utils.general.getEnvValue('USE_DNS_CACHE', 'boolean'));
|
|
47
47
|
settings.batch = { ...batch, ...settings.batch };
|
|
48
|
-
(
|
|
49
|
-
(
|
|
50
|
-
(
|
|
51
|
-
(
|
|
52
|
-
(
|
|
53
|
-
(
|
|
54
|
-
(
|
|
55
|
-
(
|
|
56
|
-
(
|
|
57
|
-
(
|
|
48
|
+
(_g = (_u = settings.batch).id) !== null && _g !== void 0 ? _g : (_u.id = (_h = utils.general.getEnvValue('BATCH_ID')) !== null && _h !== void 0 ? _h : `generated-${utils.general.guid()}`);
|
|
49
|
+
(_j = (_v = settings.batch).name) !== null && _j !== void 0 ? _j : (_v.name = utils.general.getEnvValue('BATCH_NAME'));
|
|
50
|
+
(_k = (_w = settings.batch).sequenceName) !== null && _k !== void 0 ? _k : (_w.sequenceName = utils.general.getEnvValue('BATCH_SEQUENCE'));
|
|
51
|
+
(_l = (_x = settings.batch).notifyOnCompletion) !== null && _l !== void 0 ? _l : (_x.notifyOnCompletion = utils.general.getEnvValue('BATCH_NOTIFY', 'boolean'));
|
|
52
|
+
(_m = settings.keepBatchOpen) !== null && _m !== void 0 ? _m : (settings.keepBatchOpen = utils.general.getEnvValue('DONT_CLOSE_BATCHES', 'boolean'));
|
|
53
|
+
(_o = settings.branchName) !== null && _o !== void 0 ? _o : (settings.branchName = utils.general.getEnvValue('BRANCH'));
|
|
54
|
+
(_p = settings.parentBranchName) !== null && _p !== void 0 ? _p : (settings.parentBranchName = utils.general.getEnvValue('PARENT_BRANCH'));
|
|
55
|
+
(_q = settings.baselineBranchName) !== null && _q !== void 0 ? _q : (settings.baselineBranchName = utils.general.getEnvValue('BASELINE_BRANCH'));
|
|
56
|
+
(_r = settings.ignoreBaseline) !== null && _r !== void 0 ? _r : (settings.ignoreBaseline = false);
|
|
57
|
+
(_s = settings.compareWithParentBranch) !== null && _s !== void 0 ? _s : (settings.compareWithParentBranch = false);
|
|
58
58
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
|
|
59
|
-
const
|
|
59
|
+
const environments = (_t = config === null || config === void 0 ? void 0 : config.check) === null || _t === void 0 ? void 0 : _t.environments;
|
|
60
60
|
core.logEvent({
|
|
61
61
|
settings: {
|
|
62
62
|
...settings,
|
|
@@ -85,8 +85,8 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, concurrency, bat
|
|
|
85
85
|
getTypedEyes,
|
|
86
86
|
check: (0, check_1.makeCheck)({ type, eyes, target: driver, spec, logger }),
|
|
87
87
|
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, eyes, target: driver, spec, logger }),
|
|
88
|
-
close: (0, close_1.makeClose)({ eyes,
|
|
89
|
-
abort: (0, abort_1.makeAbort)({ eyes,
|
|
88
|
+
close: (0, close_1.makeClose)({ eyes, environments, logger }),
|
|
89
|
+
abort: (0, abort_1.makeAbort)({ eyes, environments, logger }),
|
|
90
90
|
getResults: (0, get_eyes_results_1.makeGetEyesResults)({ eyes, logger }),
|
|
91
91
|
})); // TODO solve the types issue
|
|
92
92
|
};
|
|
@@ -30,12 +30,12 @@ exports.makeCheckAndClose = void 0;
|
|
|
30
30
|
const driver_1 = require("@applitools/driver");
|
|
31
31
|
const take_dom_snapshots_1 = require("./utils/take-dom-snapshots");
|
|
32
32
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
33
|
-
const
|
|
34
|
-
const
|
|
33
|
+
const uniquify_environments_1 = require("../automation/utils/uniquify-environments");
|
|
34
|
+
const to_environment_key_1 = require("../automation/utils/to-environment-key");
|
|
35
35
|
const abort_error_1 = require("../errors/abort-error");
|
|
36
36
|
const utils = __importStar(require("@applitools/utils"));
|
|
37
37
|
const chalk_1 = __importDefault(require("chalk"));
|
|
38
|
-
function makeCheckAndClose({ eyes, target: defaultTarget,
|
|
38
|
+
function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultEnvironments = [], spec, signal, logger: mainLogger, }) {
|
|
39
39
|
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
40
40
|
var _a, _b, _c;
|
|
41
41
|
logger = logger.extend(mainLogger);
|
|
@@ -47,7 +47,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
47
47
|
const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
|
|
48
48
|
settings,
|
|
49
49
|
});
|
|
50
|
-
const
|
|
50
|
+
const uniqueEnvironments = (0, uniquify_environments_1.uniquifyEnvironments)((_a = settings.environments) !== null && _a !== void 0 ? _a : defaultEnvironments);
|
|
51
51
|
const ufgClient = await eyes.core.getUFGClient({
|
|
52
52
|
settings: {
|
|
53
53
|
...eyes.test.ufgServer,
|
|
@@ -76,7 +76,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
76
76
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
77
77
|
disableBrowserFetching: settings.disableBrowserFetching,
|
|
78
78
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
79
|
-
|
|
79
|
+
environments: uniqueEnvironments,
|
|
80
80
|
skipResources: ufgClient.getCachedResourceUrls(),
|
|
81
81
|
lazyLoad: settings.lazyLoad,
|
|
82
82
|
calculateRegionsOptions: {
|
|
@@ -95,14 +95,14 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
95
95
|
else {
|
|
96
96
|
const nmlClient = await eyes.core.getNMLClient({
|
|
97
97
|
driver,
|
|
98
|
-
settings: { ...eyes.test.eyesServer,
|
|
98
|
+
settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
|
|
99
99
|
logger,
|
|
100
100
|
});
|
|
101
101
|
const snapshots = (await nmlClient.takeSnapshots({
|
|
102
102
|
settings: {
|
|
103
103
|
...eyes.test.eyesServer,
|
|
104
104
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
105
|
-
|
|
105
|
+
environments: uniqueEnvironments,
|
|
106
106
|
},
|
|
107
107
|
logger,
|
|
108
108
|
}));
|
|
@@ -124,20 +124,20 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
124
124
|
snapshotTitle = await driver.getTitle();
|
|
125
125
|
}
|
|
126
126
|
else {
|
|
127
|
-
snapshotResults = !utils.types.isArray(target) ? Array(
|
|
127
|
+
snapshotResults = !utils.types.isArray(target) ? Array(uniqueEnvironments.length).fill(target) : target;
|
|
128
128
|
snapshotUrl = utils.types.has((_c = snapshotResults[0]) === null || _c === void 0 ? void 0 : _c.snapshot, 'url') ? snapshotResults[0].snapshot.url : undefined;
|
|
129
129
|
}
|
|
130
|
-
const promises =
|
|
131
|
-
var _a;
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
if (utils.types.has(
|
|
130
|
+
const promises = uniqueEnvironments.map(async (environment, index) => {
|
|
131
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
132
|
+
const environmentLogger = logger.extend({ tags: [`environment-${utils.general.shortid()}`] });
|
|
133
|
+
const ufgEnvironment = environment;
|
|
134
|
+
if (utils.types.has(ufgEnvironment, 'name') && ufgEnvironment.name === 'edge') {
|
|
135
135
|
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.`);
|
|
136
|
-
|
|
136
|
+
environmentLogger.console.log(message);
|
|
137
137
|
}
|
|
138
138
|
try {
|
|
139
139
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
140
|
-
|
|
140
|
+
environmentLogger.warn('Command "check" was aborted before rendering');
|
|
141
141
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
142
142
|
}
|
|
143
143
|
const { snapshot: snapshotFromResult, selectorsToCalculate: selectorsToCalculateFromSnapshot, regionToTarget, scrollRootSelector, } = snapshotResults[index];
|
|
@@ -147,13 +147,13 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
147
147
|
originalSelector: selector,
|
|
148
148
|
safeSelector: selector,
|
|
149
149
|
}));
|
|
150
|
-
if (utils.types.has(
|
|
151
|
-
|
|
150
|
+
if (utils.types.has(ufgEnvironment, 'iosDeviceInfo') || utils.types.has(ufgEnvironment, 'androidDeviceInfo')) {
|
|
151
|
+
ufgEnvironment.type = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
|
|
152
152
|
}
|
|
153
153
|
const renderTargetPromise = ufgClient.createRenderTarget({
|
|
154
154
|
snapshot,
|
|
155
155
|
settings: {
|
|
156
|
-
|
|
156
|
+
environment: ufgEnvironment,
|
|
157
157
|
cookies,
|
|
158
158
|
headers: {
|
|
159
159
|
Referer: snapshotUrl,
|
|
@@ -163,26 +163,26 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
163
163
|
proxy: eyes.test.eyesServer.proxy,
|
|
164
164
|
autProxy: settings.autProxy,
|
|
165
165
|
},
|
|
166
|
-
logger:
|
|
166
|
+
logger: environmentLogger,
|
|
167
167
|
});
|
|
168
|
-
const baseEyes = await eyes.getBaseEyes({ settings: {
|
|
168
|
+
const baseEyes = await eyes.getBaseEyes({ settings: { environment }, logger });
|
|
169
169
|
try {
|
|
170
170
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
171
|
-
|
|
171
|
+
environmentLogger.warn('Command "check" was aborted before rendering');
|
|
172
172
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
173
173
|
}
|
|
174
174
|
else if (!baseEyes.running) {
|
|
175
|
-
|
|
176
|
-
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.
|
|
175
|
+
environmentLogger.warn(`Render on environment with id "${(_b = baseEyes.test.environment) === null || _b === void 0 ? void 0 : _b.environmentId}" was aborted during one of the previous steps`);
|
|
176
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${(_c = baseEyes.test.environment) === null || _c === void 0 ? void 0 : _c.environmentId}" was aborted during one of the previous steps`);
|
|
177
177
|
}
|
|
178
178
|
const renderTarget = await renderTargetPromise;
|
|
179
179
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
180
|
-
|
|
180
|
+
environmentLogger.warn('Command "check" was aborted before rendering');
|
|
181
181
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
182
182
|
}
|
|
183
183
|
else if (!baseEyes.running) {
|
|
184
|
-
|
|
185
|
-
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.
|
|
184
|
+
environmentLogger.warn(`Render on environment with id "${(_d = baseEyes.test.environment) === null || _d === void 0 ? void 0 : _d.environmentId}" was aborted during one of the previous steps`);
|
|
185
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${(_e = baseEyes.test.environment) === null || _e === void 0 ? void 0 : _e.environmentId}" was aborted during one of the previous steps`);
|
|
186
186
|
}
|
|
187
187
|
const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
|
|
188
188
|
target: renderTarget,
|
|
@@ -192,13 +192,13 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
192
192
|
scrollRootElement: scrollRootSelector,
|
|
193
193
|
selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
|
|
194
194
|
includeFullPageSize: !!settings.pageId,
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
environment: ufgEnvironment,
|
|
196
|
+
environmentId: baseEyes.test.environment.environmentId,
|
|
197
197
|
uploadUrl: baseEyes.test.uploadUrl,
|
|
198
198
|
stitchingServiceUrl: baseEyes.test.stitchingServiceUrl,
|
|
199
199
|
},
|
|
200
200
|
signal,
|
|
201
|
-
logger:
|
|
201
|
+
logger: environmentLogger,
|
|
202
202
|
});
|
|
203
203
|
let offset = 0;
|
|
204
204
|
const baseSettings = getBaseCheckSettings({
|
|
@@ -211,34 +211,34 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
211
211
|
baseTarget.source = snapshotUrl;
|
|
212
212
|
baseTarget.name = snapshotTitle;
|
|
213
213
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
214
|
-
|
|
214
|
+
environmentLogger.warn('Command "check" was aborted after rendering');
|
|
215
215
|
throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
|
|
216
216
|
}
|
|
217
217
|
else if (!baseEyes.running) {
|
|
218
|
-
|
|
219
|
-
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.
|
|
218
|
+
environmentLogger.warn(`Render on environment with id "${(_f = baseEyes.test.environment) === null || _f === void 0 ? void 0 : _f.environmentId}" was aborted during one of the previous steps`);
|
|
219
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${(_g = baseEyes.test.environment) === null || _g === void 0 ? void 0 : _g.environmentId}" was aborted during one of the previous steps`);
|
|
220
220
|
}
|
|
221
221
|
await baseEyes.checkAndClose({
|
|
222
222
|
target: { ...baseTarget, isTransformed: true },
|
|
223
223
|
settings: baseSettings,
|
|
224
|
-
logger:
|
|
224
|
+
logger: environmentLogger,
|
|
225
225
|
});
|
|
226
226
|
}
|
|
227
227
|
catch (error) {
|
|
228
|
-
|
|
229
|
-
await baseEyes.abort({ logger:
|
|
228
|
+
environmentLogger.error(`Render on environment with id "${(_h = baseEyes.test.environment) === null || _h === void 0 ? void 0 : _h.environmentId}" failed due to an error`, error);
|
|
229
|
+
await baseEyes.abort({ logger: environmentLogger });
|
|
230
230
|
error.info = { eyes: baseEyes };
|
|
231
231
|
throw error;
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
catch (error) {
|
|
235
|
-
|
|
236
|
-
error.info = { ...error.info, userTestId: eyes.test.userTestId,
|
|
235
|
+
environmentLogger.error(`Environment with id ${ufgEnvironment.environmentId} failed before rendering started due to an error`, error);
|
|
236
|
+
error.info = { ...error.info, userTestId: eyes.test.userTestId, environment: ufgEnvironment };
|
|
237
237
|
throw error;
|
|
238
238
|
}
|
|
239
239
|
});
|
|
240
|
-
|
|
241
|
-
const key = (0,
|
|
240
|
+
uniqueEnvironments.forEach((environment, index) => {
|
|
241
|
+
const key = (0, to_environment_key_1.toEnvironmentKey)(environment);
|
|
242
242
|
let item = eyes.storage.get(key);
|
|
243
243
|
if (!item) {
|
|
244
244
|
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|