@applitools/core 1.4.3 → 1.4.5
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/classic/open-eyes.js +9 -7
- package/dist/core.js +2 -2
- package/dist/extract-text.js +2 -2
- package/dist/locate-text.js +3 -3
- package/dist/{make-eg-client.js → make-ec-client.js} +8 -7
- package/dist/open-eyes.js +13 -7
- package/dist/ufg/check-and-close.js +18 -8
- package/dist/ufg/check.js +16 -6
- package/dist/ufg/open-eyes.js +7 -7
- package/dist/ufg/utils/uniquify-renderers.js +27 -0
- package/dist/utils/extract-ci-provider.js +13 -24
- package/package.json +16 -16
- package/types/check-and-close.d.ts +2 -2
- package/types/check.d.ts +2 -2
- package/types/extract-text.d.ts +3 -2
- package/types/get-typed-eyes.d.ts +2 -2
- package/types/locate-text.d.ts +3 -2
- package/types/make-ec-client.d.ts +16 -0
- package/types/types.d.ts +3 -3
- package/types/ufg/utils/uniquify-renderers.d.ts +2 -0
- package/dist/ufg/utils/add-key-to-duplicated-values-in-array.js +0 -20
- package/types/make-eg-client.d.ts +0 -12
- package/types/ufg/utils/add-key-to-duplicated-values-in-array.d.ts +0 -3
|
@@ -42,13 +42,8 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
|
|
|
42
42
|
if (driver && !eyes) {
|
|
43
43
|
const currentContext = driver.currentContext;
|
|
44
44
|
(_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const size = await driver.getViewportSize();
|
|
48
|
-
settings.environment.viewportSize = utils.geometry.scale(size, driver.viewportScale);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
await driver.setViewportSize(settings.environment.viewportSize);
|
|
45
|
+
if (driver.isEC) {
|
|
46
|
+
settings.environment.ecSessionId = driver.sessionId;
|
|
52
47
|
}
|
|
53
48
|
if (driver.isWeb) {
|
|
54
49
|
(_b = (_f = settings.environment).userAgent) !== null && _b !== void 0 ? _b : (_f.userAgent = driver.userAgent);
|
|
@@ -75,6 +70,13 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
|
|
|
75
70
|
settings.environment.os += ` ${driver.platformVersion}`;
|
|
76
71
|
}
|
|
77
72
|
}
|
|
73
|
+
if (!settings.environment.viewportSize || driver.isMobile) {
|
|
74
|
+
const size = await driver.getViewportSize();
|
|
75
|
+
settings.environment.viewportSize = utils.geometry.scale(size, driver.viewportScale);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
await driver.setViewportSize(settings.environment.viewportSize);
|
|
79
|
+
}
|
|
78
80
|
await currentContext.focus();
|
|
79
81
|
}
|
|
80
82
|
const getBaseEyes = (0, get_base_eyes_1.makeGetBaseEyes)({ settings, core, eyes, logger });
|
package/dist/core.js
CHANGED
|
@@ -33,7 +33,7 @@ const open_eyes_1 = require("./open-eyes");
|
|
|
33
33
|
const make_manager_1 = require("./make-manager");
|
|
34
34
|
const close_batch_1 = require("./close-batch");
|
|
35
35
|
const delete_test_1 = require("./delete-test");
|
|
36
|
-
const
|
|
36
|
+
const make_ec_client_1 = require("./make-ec-client");
|
|
37
37
|
const utils = __importStar(require("@applitools/utils"));
|
|
38
38
|
function makeCore({ spec, concurrency, core, agentId = 'core', cwd = process.cwd(), logger, } = {}) {
|
|
39
39
|
var _a;
|
|
@@ -51,7 +51,7 @@ function makeCore({ spec, concurrency, core, agentId = 'core', cwd = process.cwd
|
|
|
51
51
|
makeManager: (0, make_manager_1.makeMakeManager)({ spec, concurrency, agentId, logger }),
|
|
52
52
|
closeBatch: (0, close_batch_1.makeCloseBatch)({ core, logger }),
|
|
53
53
|
deleteTest: (0, delete_test_1.makeDeleteTest)({ core, logger }),
|
|
54
|
-
|
|
54
|
+
makeECClient: (0, make_ec_client_1.makeMakeECClient)({ core, logger }),
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
exports.makeCore = makeCore;
|
package/dist/extract-text.js
CHANGED
|
@@ -25,8 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeExtractText = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function makeExtractText({ eyes, logger: defaultLogger, }) {
|
|
29
|
-
return async function extractText({ target, settings, config, logger = defaultLogger, }) {
|
|
28
|
+
function makeExtractText({ eyes, target: defaultTarget, logger: defaultLogger, }) {
|
|
29
|
+
return async function extractText({ target = defaultTarget, settings, config, logger = defaultLogger, }) {
|
|
30
30
|
var _a;
|
|
31
31
|
if (utils.types.isArray(settings)) {
|
|
32
32
|
settings = settings.map(settings => {
|
package/dist/locate-text.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeLocateText = void 0;
|
|
4
|
-
function makeLocateText({ eyes, logger: defaultLogger, }) {
|
|
5
|
-
return async function locateText({ target, settings, config, logger = defaultLogger, }) {
|
|
4
|
+
function makeLocateText({ eyes, target: defaultTarget, logger: defaultLogger, }) {
|
|
5
|
+
return async function locateText({ target = defaultTarget, settings, config, logger = defaultLogger, }) {
|
|
6
6
|
var _a;
|
|
7
7
|
settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...settings };
|
|
8
8
|
(_a = settings.autProxy) !== null && _a !== void 0 ? _a : (settings.autProxy = eyes.test.server.proxy);
|
|
9
9
|
const classicEyes = await eyes.getTypedEyes({ type: 'classic', logger });
|
|
10
|
-
const results = await classicEyes.locateText({ target
|
|
10
|
+
const results = await classicEyes.locateText({ target, settings, logger });
|
|
11
11
|
return results;
|
|
12
12
|
};
|
|
13
13
|
}
|
|
@@ -23,21 +23,22 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.makeMakeECClient = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function
|
|
29
|
-
return
|
|
28
|
+
function makeMakeECClient({ core, logger: defaultLogger }) {
|
|
29
|
+
return utils.general.cachify(makeECClient, ([options]) => options === null || options === void 0 ? void 0 : options.settings);
|
|
30
|
+
async function makeECClient({ settings, logger = defaultLogger, } = {}) {
|
|
30
31
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
31
32
|
var _j, _k;
|
|
32
|
-
const {
|
|
33
|
+
const { makeECClient } = require('@applitools/ec-client');
|
|
33
34
|
const serverUrl = (_c = (_b = (_a = settings.capabilities.eyesServerUrl) !== null && _a !== void 0 ? _a : 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
35
|
const apiKey = ((_d = (_j = settings.capabilities).apiKey) !== null && _d !== void 0 ? _d : (_j.apiKey = utils.general.getEnvValue('API_KEY')));
|
|
35
36
|
const proxy = (_e = settings.proxy) !== null && _e !== void 0 ? _e : (utils.general.getEnvValue('PROXY_URL') && { url: utils.general.getEnvValue('PROXY_URL') });
|
|
36
37
|
const account = await core.getAccountInfo({ settings: { serverUrl, apiKey, proxy }, logger });
|
|
37
38
|
(_f = settings.capabilities) !== null && _f !== void 0 ? _f : (settings.capabilities = {});
|
|
38
39
|
(_g = (_k = settings.capabilities).useSelfHealing) !== null && _g !== void 0 ? _g : (_k.useSelfHealing = (_h = utils.general.getEnvValue('USE_SELF_HEALING', 'boolean')) !== null && _h !== void 0 ? _h : account.selfHealingEnabled);
|
|
39
|
-
const client = await
|
|
40
|
+
const client = await makeECClient({ settings, logger });
|
|
40
41
|
return client;
|
|
41
|
-
}
|
|
42
|
+
}
|
|
42
43
|
}
|
|
43
|
-
exports.
|
|
44
|
+
exports.makeMakeECClient = makeMakeECClient;
|
package/dist/open-eyes.js
CHANGED
|
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeOpenEyes = void 0;
|
|
27
|
+
const driver_1 = require("@applitools/driver");
|
|
27
28
|
const core_1 = require("./classic/core");
|
|
28
29
|
const core_2 = require("./ufg/core");
|
|
29
30
|
const get_typed_eyes_1 = require("./get-typed-eyes");
|
|
@@ -32,8 +33,8 @@ const check_and_close_1 = require("./check-and-close");
|
|
|
32
33
|
const locate_text_1 = require("./locate-text");
|
|
33
34
|
const extract_text_1 = require("./extract-text");
|
|
34
35
|
const close_1 = require("./close");
|
|
35
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
36
36
|
const extract_ci_provider_1 = require("./utils/extract-ci-provider");
|
|
37
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
37
38
|
function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core, cores, spec, logger: defaultLogger, }) {
|
|
38
39
|
return async function openEyes({ type = defaultType, settings, config, target, logger = defaultLogger, }) {
|
|
39
40
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
@@ -58,6 +59,11 @@ function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core,
|
|
|
58
59
|
const ufgConfig = config;
|
|
59
60
|
(_r = ufgSettings.renderConcurrency) !== null && _r !== void 0 ? _r : (ufgSettings.renderConcurrency = (_t = (_s = ufgConfig === null || ufgConfig === void 0 ? void 0 : ufgConfig.check) === null || _s === void 0 ? void 0 : _s.renderers) === null || _t === void 0 ? void 0 : _t.length);
|
|
60
61
|
}
|
|
62
|
+
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
|
|
63
|
+
if (driver === null || driver === void 0 ? void 0 : driver.isEC) {
|
|
64
|
+
(_u = settings.properties) !== null && _u !== void 0 ? _u : (settings.properties = []);
|
|
65
|
+
settings.properties.push({ name: 'Running platform', value: 'Execution cloud' });
|
|
66
|
+
}
|
|
61
67
|
core.logEvent({
|
|
62
68
|
settings: {
|
|
63
69
|
serverUrl: settings.serverUrl,
|
|
@@ -70,7 +76,7 @@ function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core,
|
|
|
70
76
|
testConcurrency: concurrency,
|
|
71
77
|
concurrentRendersPerTest: settings.renderConcurrency,
|
|
72
78
|
node: { version: process.version, platform: process.platform, arch: process.arch },
|
|
73
|
-
driverUrl:
|
|
79
|
+
driverUrl: driver === null || driver === void 0 ? void 0 : driver.remoteHostname,
|
|
74
80
|
extractedCIProvider: (0, extract_ci_provider_1.extractCIProvider)(),
|
|
75
81
|
},
|
|
76
82
|
},
|
|
@@ -79,7 +85,7 @@ function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core,
|
|
|
79
85
|
const getTypedEyes = (0, get_typed_eyes_1.makeGetTypedEyes)({
|
|
80
86
|
type,
|
|
81
87
|
settings: settings,
|
|
82
|
-
target,
|
|
88
|
+
target: driver,
|
|
83
89
|
cores: cores !== null && cores !== void 0 ? cores : {
|
|
84
90
|
ufg: (0, core_2.makeCore)({ spec, core, concurrency: concurrency !== null && concurrency !== void 0 ? concurrency : 5, logger }),
|
|
85
91
|
classic: (0, core_1.makeCore)({ spec, core, logger }),
|
|
@@ -89,10 +95,10 @@ function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core,
|
|
|
89
95
|
const eyes = await getTypedEyes({ logger });
|
|
90
96
|
return utils.general.extend(eyes, eyes => ({
|
|
91
97
|
getTypedEyes,
|
|
92
|
-
check: (0, check_1.makeCheck)({ type, eyes, target, spec, logger }),
|
|
93
|
-
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, eyes, target, spec, logger }),
|
|
94
|
-
locateText: (0, locate_text_1.makeLocateText)({ eyes, logger }),
|
|
95
|
-
extractText: (0, extract_text_1.makeExtractText)({ eyes, logger }),
|
|
98
|
+
check: (0, check_1.makeCheck)({ type, eyes, target: driver, spec, logger }),
|
|
99
|
+
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, eyes, target: driver, spec, logger }),
|
|
100
|
+
locateText: (0, locate_text_1.makeLocateText)({ eyes, target: driver, logger }),
|
|
101
|
+
extractText: (0, extract_text_1.makeExtractText)({ eyes, target: driver, logger }),
|
|
96
102
|
close: (0, close_1.makeClose)({ eyes, logger }),
|
|
97
103
|
}));
|
|
98
104
|
};
|
|
@@ -32,25 +32,35 @@ 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 uniquify_renderers_1 = require("./utils/uniquify-renderers");
|
|
35
36
|
const abort_error_1 = require("../errors/abort-error");
|
|
36
37
|
const utils = __importStar(require("@applitools/utils"));
|
|
37
38
|
const chalk_1 = __importDefault(require("chalk"));
|
|
38
39
|
function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget, logger: defaultLogger, }) {
|
|
39
40
|
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = defaultLogger, snapshots, }) {
|
|
40
|
-
var _a, _b;
|
|
41
|
+
var _a, _b, _c;
|
|
41
42
|
logger.log('Command "checkAndClose" is called with settings', settings);
|
|
42
43
|
if (signal.aborted) {
|
|
43
44
|
logger.warn('Command "checkAndClose" was called after test was already aborted');
|
|
44
45
|
throw new abort_error_1.AbortError('Command "checkAndClose" was called after test was already aborted');
|
|
45
46
|
}
|
|
46
47
|
const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
|
|
47
|
-
let snapshotUrl
|
|
48
|
+
let snapshotUrl;
|
|
49
|
+
let snapshotTitle;
|
|
50
|
+
let userAgent;
|
|
51
|
+
let regionToTarget;
|
|
52
|
+
let selectorsToCalculate;
|
|
53
|
+
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
|
|
48
54
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
49
|
-
// TODO driver custom config
|
|
50
55
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
if (uniqueRenderers.length === 0) {
|
|
57
|
+
if (driver.isWeb) {
|
|
58
|
+
const viewportSize = await driver.getViewportSize();
|
|
59
|
+
uniqueRenderers.push({ name: 'chrome', ...viewportSize });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// TODO add default nmg renderers
|
|
63
|
+
}
|
|
54
64
|
}
|
|
55
65
|
let cleanupGeneratedSelectors;
|
|
56
66
|
if (driver.isWeb) {
|
|
@@ -61,7 +71,7 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
61
71
|
});
|
|
62
72
|
cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
|
|
63
73
|
if (elementReferenceToTarget) {
|
|
64
|
-
regionToTarget = (
|
|
74
|
+
regionToTarget = (_b = generated.selectors[0]) === null || _b === void 0 ? void 0 : _b.safeSelector;
|
|
65
75
|
if (!regionToTarget)
|
|
66
76
|
throw new Error('Target element not found');
|
|
67
77
|
selectorsToCalculate = generated.selectors.slice(1);
|
|
@@ -109,7 +119,7 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
109
119
|
snapshots = !utils.types.isArray(target) ? Array(settings.renderers.length).fill(target) : target;
|
|
110
120
|
snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
|
|
111
121
|
}
|
|
112
|
-
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (
|
|
122
|
+
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_c = elementReferenceToTarget) !== null && _c !== void 0 ? _c : settings.region);
|
|
113
123
|
selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
|
|
114
124
|
originalSelector: selector,
|
|
115
125
|
safeSelector: selector,
|
package/dist/ufg/check.js
CHANGED
|
@@ -32,9 +32,9 @@ 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 uniquify_renderers_1 = require("./utils/uniquify-renderers");
|
|
35
36
|
const abort_error_1 = require("../errors/abort-error");
|
|
36
37
|
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"));
|
|
38
38
|
const chalk_1 = __importDefault(require("chalk"));
|
|
39
39
|
function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
|
|
40
40
|
return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
|
|
@@ -45,14 +45,24 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
45
45
|
throw new abort_error_1.AbortError('Command "check" was called after test was already aborted');
|
|
46
46
|
}
|
|
47
47
|
const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
|
|
48
|
-
let snapshots
|
|
49
|
-
|
|
48
|
+
let snapshots;
|
|
49
|
+
let snapshotUrl;
|
|
50
|
+
let snapshotTitle;
|
|
51
|
+
let userAgent;
|
|
52
|
+
let regionToTarget;
|
|
53
|
+
let selectorsToCalculate;
|
|
54
|
+
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
|
|
50
55
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
51
56
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
52
57
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
if (uniqueRenderers.length === 0) {
|
|
59
|
+
if (driver.isWeb) {
|
|
60
|
+
const viewportSize = await driver.getViewportSize();
|
|
61
|
+
uniqueRenderers.push({ name: 'chrome', ...viewportSize });
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// TODO add default nmg renderers
|
|
65
|
+
}
|
|
56
66
|
}
|
|
57
67
|
let cleanupGeneratedSelectors;
|
|
58
68
|
if (driver.isWeb) {
|
package/dist/ufg/open-eyes.js
CHANGED
|
@@ -35,16 +35,16 @@ const abort_controller_1 = require("abort-controller");
|
|
|
35
35
|
const utils = __importStar(require("@applitools/utils"));
|
|
36
36
|
function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
|
|
37
37
|
return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
|
|
38
|
-
var _a, _b
|
|
38
|
+
var _a, _b;
|
|
39
39
|
logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), eyes ? 'predefined eyes' : '');
|
|
40
40
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: { disableHelper: true } }));
|
|
41
|
-
(_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
|
|
42
|
-
settings.environment.egSessionId = (driver === null || driver === void 0 ? void 0 : driver.isExecutionGrid) ? driver.sessionId : null;
|
|
43
41
|
if (driver && !eyes) {
|
|
44
42
|
const currentContext = driver.currentContext;
|
|
45
|
-
(
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
(_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
|
|
44
|
+
if (driver.isEC) {
|
|
45
|
+
settings.environment.ecSessionId = driver.sessionId;
|
|
46
|
+
}
|
|
47
|
+
if (settings.environment.viewportSize) {
|
|
48
48
|
await driver.setViewportSize(settings.environment.viewportSize);
|
|
49
49
|
}
|
|
50
50
|
await currentContext.focus();
|
|
@@ -53,7 +53,7 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
|
|
|
53
53
|
const account = await core.getAccountInfo({ settings, logger });
|
|
54
54
|
client !== null && client !== void 0 ? client : (client = (0, ufg_client_1.makeUFGClient)({
|
|
55
55
|
config: { ...account.ufg, ...account, proxy: settings.proxy },
|
|
56
|
-
concurrency: (
|
|
56
|
+
concurrency: (_b = settings.renderConcurrency) !== null && _b !== void 0 ? _b : 5,
|
|
57
57
|
logger,
|
|
58
58
|
}));
|
|
59
59
|
const getBaseEyes = (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, core, client, logger });
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uniquifyRenderers = void 0;
|
|
4
|
+
function uniquifyRenderers(renderers) {
|
|
5
|
+
const duplications = new Map(renderers.map(renderer => [JSON.stringify(renderer), 0]));
|
|
6
|
+
return renderers.reduce((uniqueRenderers, renderer) => {
|
|
7
|
+
const key = JSON.stringify(renderer);
|
|
8
|
+
let index = duplications.get(key);
|
|
9
|
+
if (index > 0) {
|
|
10
|
+
if (!renderer.id) {
|
|
11
|
+
let uniqueRenderer;
|
|
12
|
+
do {
|
|
13
|
+
uniqueRenderer = { ...renderer, id: `${index}` };
|
|
14
|
+
index += 1;
|
|
15
|
+
} while (duplications.has(JSON.stringify(uniqueRenderer)));
|
|
16
|
+
uniqueRenderers.push(uniqueRenderer);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
index += 1;
|
|
21
|
+
uniqueRenderers.push(renderer);
|
|
22
|
+
}
|
|
23
|
+
duplications.set(key, index);
|
|
24
|
+
return uniqueRenderers;
|
|
25
|
+
}, []);
|
|
26
|
+
}
|
|
27
|
+
exports.uniquifyRenderers = uniquifyRenderers;
|
|
@@ -2,41 +2,30 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractCIProvider = void 0;
|
|
4
4
|
function extractCIProvider() {
|
|
5
|
-
if (process.env.TF_BUILD)
|
|
5
|
+
if (process.env.TF_BUILD)
|
|
6
6
|
return 'Azure';
|
|
7
|
-
|
|
8
|
-
if (process.env['bamboo.buildKey']) {
|
|
7
|
+
if (process.env['bamboo.buildKey'])
|
|
9
8
|
return 'Bamboo';
|
|
10
|
-
|
|
11
|
-
if (process.env.BUILDKITE) {
|
|
9
|
+
if (process.env.BUILDKITE)
|
|
12
10
|
return 'Buildkite';
|
|
13
|
-
|
|
14
|
-
if (process.env.CIRCLECI) {
|
|
11
|
+
if (process.env.CIRCLECI)
|
|
15
12
|
return 'Circle';
|
|
16
|
-
|
|
17
|
-
if (process.env.CIRRUS_CI) {
|
|
13
|
+
if (process.env.CIRRUS_CI)
|
|
18
14
|
return 'Cirrus';
|
|
19
|
-
|
|
20
|
-
if (process.env.CODEBUILD_BUILD_ID) {
|
|
15
|
+
if (process.env.CODEBUILD_BUILD_ID)
|
|
21
16
|
return 'CodeBuild';
|
|
22
|
-
|
|
23
|
-
if (process.env.GITHUB_ACTIONS) {
|
|
17
|
+
if (process.env.GITHUB_ACTIONS)
|
|
24
18
|
return 'GitHub Actions';
|
|
25
|
-
|
|
26
|
-
if (process.env.GITLAB_CI) {
|
|
19
|
+
if (process.env.GITLAB_CI)
|
|
27
20
|
return 'GitLab';
|
|
28
|
-
|
|
29
|
-
if (process.env.HEROKU_TEST_RUN_ID) {
|
|
21
|
+
if (process.env.HEROKU_TEST_RUN_ID)
|
|
30
22
|
return 'Heroku';
|
|
31
|
-
|
|
32
|
-
if (process.env.BUILD_ID) {
|
|
23
|
+
if (process.env.BUILD_ID)
|
|
33
24
|
return 'Jenkins';
|
|
34
|
-
|
|
35
|
-
if (process.env.TEAMCITY_VERSION) {
|
|
25
|
+
if (process.env.TEAMCITY_VERSION)
|
|
36
26
|
return 'TeamCity';
|
|
37
|
-
|
|
38
|
-
if (process.env.TRAVIS) {
|
|
27
|
+
if (process.env.TRAVIS)
|
|
39
28
|
return 'Travis';
|
|
40
|
-
|
|
29
|
+
return null;
|
|
41
30
|
}
|
|
42
31
|
exports.extractCIProvider = extractCIProvider;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -61,33 +61,33 @@
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@applitools/core-base": "1.1.
|
|
64
|
+
"@applitools/core-base": "1.1.31",
|
|
65
65
|
"@applitools/dom-capture": "11.2.0",
|
|
66
66
|
"@applitools/dom-snapshot": "4.7.3",
|
|
67
|
-
"@applitools/driver": "1.11.
|
|
68
|
-
"@applitools/logger": "1.1.
|
|
69
|
-
"@applitools/nml-client": "1.3.
|
|
70
|
-
"@applitools/req": "1.1.
|
|
71
|
-
"@applitools/screenshoter": "3.7.
|
|
72
|
-
"@applitools/snippets": "2.4.
|
|
73
|
-
"@applitools/ufg-client": "1.1.
|
|
74
|
-
"@applitools/utils": "1.3.
|
|
67
|
+
"@applitools/driver": "1.11.26",
|
|
68
|
+
"@applitools/logger": "1.1.42",
|
|
69
|
+
"@applitools/nml-client": "1.3.28",
|
|
70
|
+
"@applitools/req": "1.1.28",
|
|
71
|
+
"@applitools/screenshoter": "3.7.23",
|
|
72
|
+
"@applitools/snippets": "2.4.14",
|
|
73
|
+
"@applitools/ufg-client": "1.1.21",
|
|
74
|
+
"@applitools/utils": "1.3.28",
|
|
75
75
|
"abort-controller": "3.0.0",
|
|
76
76
|
"chalk": "4.1.2",
|
|
77
77
|
"node-fetch": "2.6.7",
|
|
78
78
|
"throat": "6.0.1"
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|
|
81
|
-
"@applitools/
|
|
81
|
+
"@applitools/ec-client": "^1.2.5"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"@applitools/bongo": "^2.2.2",
|
|
85
85
|
"@applitools/sdk-fake-eyes-server": "^2.1.3",
|
|
86
|
-
"@applitools/spec-driver-puppeteer": "^1.1.
|
|
87
|
-
"@applitools/spec-driver-selenium": "^1.5.
|
|
88
|
-
"@applitools/spec-driver-webdriverio": "^1.4.
|
|
89
|
-
"@applitools/test-server": "^1.1.
|
|
90
|
-
"@applitools/test-utils": "^1.5.
|
|
86
|
+
"@applitools/spec-driver-puppeteer": "^1.1.37",
|
|
87
|
+
"@applitools/spec-driver-selenium": "^1.5.24",
|
|
88
|
+
"@applitools/spec-driver-webdriverio": "^1.4.21",
|
|
89
|
+
"@applitools/test-server": "^1.1.22",
|
|
90
|
+
"@applitools/test-utils": "^1.5.9",
|
|
91
91
|
"@types/mocha": "^9.1.1",
|
|
92
92
|
"@types/node": "12",
|
|
93
93
|
"@types/selenium-webdriver": "^4.1.2",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Target, Eyes, Config, CheckSettings, CloseSettings, TestResult } from './types';
|
|
1
|
+
import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings, TestResult } from './types';
|
|
2
2
|
import { type Logger } from '@applitools/logger';
|
|
3
3
|
import { type SpecDriver } from '@applitools/driver';
|
|
4
4
|
type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
|
|
5
5
|
type?: TType;
|
|
6
6
|
eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
|
|
7
|
-
target?:
|
|
7
|
+
target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
|
|
8
8
|
spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
9
9
|
logger: Logger;
|
|
10
10
|
};
|
package/types/check.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Target, Eyes, Config, CheckSettings, CheckResult } from './types';
|
|
1
|
+
import type { Target, DriverTarget, Eyes, Config, CheckSettings, CheckResult } from './types';
|
|
2
2
|
import { type Logger } from '@applitools/logger';
|
|
3
3
|
import { type SpecDriver } from '@applitools/driver';
|
|
4
4
|
type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
|
|
5
5
|
type?: TType;
|
|
6
6
|
eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
|
|
7
|
-
target?:
|
|
7
|
+
target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
|
|
8
8
|
spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
9
9
|
logger?: Logger;
|
|
10
10
|
};
|
package/types/extract-text.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { MaybeArray } from '@applitools/utils';
|
|
2
|
-
import type { Target, Eyes, Config, ExtractTextSettings } from './types';
|
|
2
|
+
import type { Target, DriverTarget, Eyes, Config, ExtractTextSettings } from './types';
|
|
3
3
|
import { type Logger } from '@applitools/logger';
|
|
4
4
|
type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
|
|
5
5
|
eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
|
|
6
|
+
target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
|
|
6
7
|
logger: Logger;
|
|
7
8
|
};
|
|
8
|
-
export declare function makeExtractText<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg' = 'classic'>({ eyes, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TType>): ({ target, settings, config, logger, }: {
|
|
9
|
+
export declare function makeExtractText<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg' = 'classic'>({ eyes, target: defaultTarget, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TType>): ({ target, settings, config, logger, }: {
|
|
9
10
|
target?: Target<TDriver, TContext, TElement, TSelector, 'classic'>;
|
|
10
11
|
settings: MaybeArray<ExtractTextSettings<TElement, TSelector, 'classic'>>;
|
|
11
12
|
config?: Config<TElement, TSelector, 'classic'>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { TypedCore, TypedEyes, OpenSettings } from './types';
|
|
1
|
+
import type { DriverTarget, TypedCore, TypedEyes, OpenSettings } from './types';
|
|
2
2
|
import { type Renderer } from '@applitools/ufg-client';
|
|
3
3
|
import { type Logger } from '@applitools/logger';
|
|
4
4
|
type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
|
|
5
5
|
type: TType;
|
|
6
6
|
settings: OpenSettings<TType>;
|
|
7
|
-
target?: TDriver
|
|
7
|
+
target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
|
|
8
8
|
cores: {
|
|
9
9
|
[TKey in 'classic' | 'ufg']: TypedCore<TDriver, TContext, TElement, TSelector, TKey>;
|
|
10
10
|
};
|
package/types/locate-text.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { Target, Eyes, Config, LocateTextSettings, LocateTextResult } from './types';
|
|
1
|
+
import type { DriverTarget, Target, Eyes, Config, LocateTextSettings, LocateTextResult } from './types';
|
|
2
2
|
import { type Logger } from '@applitools/logger';
|
|
3
3
|
type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
|
|
4
4
|
eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
|
|
5
|
+
target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
|
|
5
6
|
logger: Logger;
|
|
6
7
|
};
|
|
7
|
-
export declare function makeLocateText<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg' = 'classic'>({ eyes, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TType>): <TPattern extends string>({ target, settings, config, logger, }: {
|
|
8
|
+
export declare function makeLocateText<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg' = 'classic'>({ eyes, target: defaultTarget, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TType>): <TPattern extends string>({ target, settings, config, logger, }: {
|
|
8
9
|
target?: Target<TDriver, TContext, TElement, TSelector, 'classic'>;
|
|
9
10
|
settings: import("./automation/types").LocateTextSettings<TPattern, TElement, TSelector>;
|
|
10
11
|
config?: Config<TElement, TSelector, 'classic'>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Core as BaseCore } from '@applitools/core-base';
|
|
2
|
+
import { type ECClient, type ECClientSettings } from '@applitools/ec-client';
|
|
3
|
+
import { type Logger } from '@applitools/logger';
|
|
4
|
+
type Options = {
|
|
5
|
+
core: BaseCore;
|
|
6
|
+
logger: Logger;
|
|
7
|
+
};
|
|
8
|
+
export declare function makeMakeECClient({ core, logger: defaultLogger }: Options): (({ settings, logger, }?: {
|
|
9
|
+
settings?: ECClientSettings;
|
|
10
|
+
logger?: Logger;
|
|
11
|
+
}) => Promise<ECClient>) & {
|
|
12
|
+
getCachedValues(): Promise<ECClient>[];
|
|
13
|
+
setCachedValue(key: any, value: Promise<ECClient>): void;
|
|
14
|
+
clearCache(): void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
package/types/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MaybeArray } from '@applitools/utils';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ECClient } from '@applitools/ec-client';
|
|
3
3
|
import type * as AutomationCore from './automation/types';
|
|
4
4
|
import type * as ClassicCore from './classic/types';
|
|
5
5
|
import type * as UFGCore from './ufg/types';
|
|
@@ -11,10 +11,10 @@ export type TypedCore<TDriver, TContext, TElement, TSelector, TType extends 'cla
|
|
|
11
11
|
export type TypedEyes<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg', TTarget = Target<TDriver, TContext, TElement, TSelector, TType>> = TType extends 'ufg' ? UFGCore.Eyes<TDriver, TContext, TElement, TSelector, TTarget> : ClassicCore.Eyes<TDriver, TContext, TElement, TSelector, TTarget>;
|
|
12
12
|
export type Target<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = TType extends 'ufg' ? UFGCore.UFGTarget<TDriver, TContext, TElement, TSelector> : ClassicCore.ClassicTarget<TDriver, TContext, TElement, TSelector>;
|
|
13
13
|
export interface Core<TDriver, TContext, TElement, TSelector> extends AutomationCore.Core<TDriver, TContext, TElement, TSelector> {
|
|
14
|
-
|
|
14
|
+
makeECClient(options?: {
|
|
15
15
|
settings?: any;
|
|
16
16
|
logger?: Logger;
|
|
17
|
-
}): Promise<
|
|
17
|
+
}): Promise<ECClient>;
|
|
18
18
|
makeManager<TType extends 'classic' | 'ufg' = 'classic'>(options?: {
|
|
19
19
|
type: TType;
|
|
20
20
|
concurrency?: TType extends 'ufg' ? number : never;
|
|
@@ -1,20 +0,0 @@
|
|
|
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;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Core as BaseCore } from '@applitools/core-base';
|
|
2
|
-
import { type EGClient, type EGClientSettings } from '@applitools/execution-grid-client';
|
|
3
|
-
import { type Logger } from '@applitools/logger';
|
|
4
|
-
type Options = {
|
|
5
|
-
core: BaseCore;
|
|
6
|
-
logger: Logger;
|
|
7
|
-
};
|
|
8
|
-
export declare function makeMakeEGClient({ core, logger: defaultLogger }: Options): ({ settings, logger, }?: {
|
|
9
|
-
settings?: EGClientSettings;
|
|
10
|
-
logger?: Logger;
|
|
11
|
-
}) => Promise<EGClient>;
|
|
12
|
-
export {};
|