@applitools/core 2.4.5 → 2.4.6
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 +7 -0
- package/dist/automation/extract-text.js +2 -1
- package/dist/automation/locate-text.js +2 -1
- package/dist/automation/utils/take-screenshot.js +2 -1
- package/dist/check-and-close.js +2 -1
- package/dist/check.js +2 -1
- package/dist/classic/check-and-close.js +4 -3
- package/dist/classic/check.js +4 -4
- package/dist/classic/open-eyes.js +22 -20
- package/dist/classic/utils/take-dom-capture.js +11 -6
- package/dist/get-manager-results.js +0 -1
- package/dist/open-eyes.js +3 -2
- package/dist/ufg/check-and-close.js +12 -11
- package/dist/ufg/check.js +12 -11
- package/dist/ufg/get-nml-client.js +1 -1
- package/dist/ufg/open-eyes.js +4 -3
- package/dist/ufg/utils/take-dom-snapshot.js +12 -10
- package/dist/ufg/utils/take-vhses.js +10 -9
- package/dist/utils/separate-duplicate-results.js +8 -10
- package/package.json +12 -12
- package/types/classic/utils/take-dom-capture.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -37,6 +37,7 @@ function makeExtractText({ core, spec, logger: defaultLogger }) {
|
|
|
37
37
|
}
|
|
38
38
|
settings = utils.types.isArray(settings) ? settings : [settings];
|
|
39
39
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
40
|
+
const environment = await driver.getEnvironment();
|
|
40
41
|
const results = await settings.reduce(async (prev, settings) => {
|
|
41
42
|
var _a;
|
|
42
43
|
const steps = await prev;
|
|
@@ -54,7 +55,7 @@ function makeExtractText({ core, spec, logger: defaultLogger }) {
|
|
|
54
55
|
size: utils.geometry.size(screenshot.region),
|
|
55
56
|
locationInViewport: utils.geometry.location(screenshot.region),
|
|
56
57
|
};
|
|
57
|
-
if (
|
|
58
|
+
if (environment.isWeb) {
|
|
58
59
|
if (settings.fully)
|
|
59
60
|
await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
|
|
60
61
|
else
|
|
@@ -35,12 +35,13 @@ function makeLocateText({ core, spec, logger: defaultLogger }) {
|
|
|
35
35
|
return core.base.locateText({ target, settings: settings, logger });
|
|
36
36
|
}
|
|
37
37
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
38
|
+
const environment = await driver.getEnvironment();
|
|
38
39
|
const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
|
|
39
40
|
const baseTarget = {
|
|
40
41
|
image: await screenshot.image.toPng(),
|
|
41
42
|
locationInViewport: utils.geometry.location(screenshot.region),
|
|
42
43
|
};
|
|
43
|
-
if (
|
|
44
|
+
if (environment.isWeb) {
|
|
44
45
|
// if (settings.fully) await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true')
|
|
45
46
|
// else await screenshot.element?.setAttribute('data-applitools-scroll', 'true')
|
|
46
47
|
// baseTarget.dom = await takeDomCapture({driver, logger}).catch(() => null)
|
|
@@ -28,6 +28,7 @@ const utils = __importStar(require("@applitools/utils"));
|
|
|
28
28
|
const { takeScreenshot: legacyTakeScreenshot } = require('@applitools/screenshoter');
|
|
29
29
|
async function takeScreenshot({ driver, settings, logger, }) {
|
|
30
30
|
var _a, _b;
|
|
31
|
+
const environment = await driver.getEnvironment();
|
|
31
32
|
return legacyTakeScreenshot({
|
|
32
33
|
driver,
|
|
33
34
|
frames: (_a = settings.frames) === null || _a === void 0 ? void 0 : _a.map(frame => {
|
|
@@ -43,7 +44,7 @@ async function takeScreenshot({ driver, settings, logger, }) {
|
|
|
43
44
|
scrollingMode: (_b = settings.stitchMode) === null || _b === void 0 ? void 0 : _b.toLowerCase(),
|
|
44
45
|
overlap: settings.overlap,
|
|
45
46
|
wait: settings.waitBeforeCapture,
|
|
46
|
-
framed:
|
|
47
|
+
framed: environment.isNative,
|
|
47
48
|
lazyLoad: settings.lazyLoad,
|
|
48
49
|
stabilization: settings.normalization && {
|
|
49
50
|
crop: settings.normalization.cut,
|
package/dist/check-and-close.js
CHANGED
|
@@ -7,10 +7,11 @@ function makeCheckAndClose({ type: defaultType = 'classic', eyes, target: defaul
|
|
|
7
7
|
var _a;
|
|
8
8
|
settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...config === null || config === void 0 ? void 0 : config.check, ...config === null || config === void 0 ? void 0 : config.close, ...settings };
|
|
9
9
|
const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
|
|
10
|
+
const environment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
|
|
10
11
|
const typedEyes = await eyes.getTypedEyes({
|
|
11
12
|
type,
|
|
12
13
|
settings: (_a = settings.renderers) === null || _a === void 0 ? void 0 : _a.map(renderer => ({
|
|
13
|
-
type: (
|
|
14
|
+
type: (environment === null || environment === void 0 ? void 0 : environment.isNative) ? 'native' : 'web',
|
|
14
15
|
renderer,
|
|
15
16
|
})),
|
|
16
17
|
logger,
|
package/dist/check.js
CHANGED
|
@@ -60,10 +60,11 @@ function makeCheck({ type: defaultType = 'classic', eyes, target: defaultTarget,
|
|
|
60
60
|
logger.console.log(chalk_1.default.yellow(`The "Content" match level value has been deprecated, use "IgnoreColors" instead.`));
|
|
61
61
|
}
|
|
62
62
|
const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
|
|
63
|
+
const environment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
|
|
63
64
|
const typedEyes = await eyes.getTypedEyes({
|
|
64
65
|
type,
|
|
65
66
|
settings: (_r = settings.renderers) === null || _r === void 0 ? void 0 : _r.map(renderer => ({
|
|
66
|
-
type: (
|
|
67
|
+
type: (environment === null || environment === void 0 ? void 0 : environment.isNative) ? 'native' : 'web',
|
|
67
68
|
renderer,
|
|
68
69
|
})),
|
|
69
70
|
logger,
|
|
@@ -42,7 +42,8 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: defaultL
|
|
|
42
42
|
return (await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target, settings: baseSettings, logger })))).flat();
|
|
43
43
|
}
|
|
44
44
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
45
|
-
|
|
45
|
+
const environment = await driver.getEnvironment();
|
|
46
|
+
if (settings.lazyLoad && environment.isWeb) {
|
|
46
47
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
47
48
|
context: driver.currentContext,
|
|
48
49
|
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
@@ -63,7 +64,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: defaultL
|
|
|
63
64
|
isTransformed: true,
|
|
64
65
|
};
|
|
65
66
|
const baseSettings = getBaseCheckSettings({ calculatedRegions: screenshot.calculatedRegions });
|
|
66
|
-
if (
|
|
67
|
+
if (environment.isWeb && settings.sendDom) {
|
|
67
68
|
if (settings.fully)
|
|
68
69
|
await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
|
|
69
70
|
else
|
|
@@ -72,7 +73,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: defaultL
|
|
|
72
73
|
}
|
|
73
74
|
if (settings.pageId) {
|
|
74
75
|
const scrollingElement = await driver.mainContext.getScrollingElement();
|
|
75
|
-
const scrollingOffset = !scrollingElement ||
|
|
76
|
+
const scrollingOffset = !scrollingElement || environment.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
|
|
76
77
|
baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
|
|
77
78
|
baseTarget.fullViewSize = scrollingElement
|
|
78
79
|
? await scrollingElement.getContentSize()
|
package/dist/classic/check.js
CHANGED
|
@@ -41,9 +41,9 @@ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }
|
|
|
41
41
|
return (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target, settings: settings, logger })))).flat();
|
|
42
42
|
}
|
|
43
43
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
44
|
-
await driver.
|
|
44
|
+
const environment = await driver.getEnvironment();
|
|
45
45
|
await driver.currentContext.setScrollingElement((_a = settings.scrollRootElement) !== null && _a !== void 0 ? _a : null);
|
|
46
|
-
if (settings.lazyLoad &&
|
|
46
|
+
if (settings.lazyLoad && environment.isWeb) {
|
|
47
47
|
if (settings.lazyLoad) {
|
|
48
48
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
49
49
|
context: driver.currentContext,
|
|
@@ -73,7 +73,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }
|
|
|
73
73
|
isTransformed: true,
|
|
74
74
|
};
|
|
75
75
|
baseSettings = getBaseCheckSettings({ calculatedRegions: screenshot.calculatedRegions });
|
|
76
|
-
if (
|
|
76
|
+
if (environment.isWeb && settings.sendDom) {
|
|
77
77
|
if (settings.fully)
|
|
78
78
|
await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
|
|
79
79
|
else
|
|
@@ -82,7 +82,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }
|
|
|
82
82
|
}
|
|
83
83
|
if (settings.pageId) {
|
|
84
84
|
const scrollingElement = await driver.mainContext.getScrollingElement();
|
|
85
|
-
const scrollingOffset = !scrollingElement ||
|
|
85
|
+
const scrollingOffset = !scrollingElement || environment.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
|
|
86
86
|
baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
|
|
87
87
|
baseTarget.fullViewSize = scrollingElement
|
|
88
88
|
? await scrollingElement.getContentSize()
|
|
@@ -33,46 +33,48 @@ const abort_1 = require("./abort");
|
|
|
33
33
|
const utils = __importStar(require("@applitools/utils"));
|
|
34
34
|
function makeOpenEyes({ core, spec, logger: defaultLogger }) {
|
|
35
35
|
return async function openEyes({ target, settings, base, logger = defaultLogger, }) {
|
|
36
|
-
var _a, _b, _c, _d, _e;
|
|
37
|
-
var
|
|
36
|
+
var _a, _b, _c, _d, _e, _f;
|
|
37
|
+
var _g;
|
|
38
38
|
logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), base ? 'predefined eyes' : '');
|
|
39
39
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
|
|
40
40
|
if (driver && !base) {
|
|
41
|
+
const environment = await driver.getEnvironment();
|
|
41
42
|
const currentContext = driver.currentContext;
|
|
42
43
|
(_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
|
|
43
|
-
if (
|
|
44
|
-
settings.environment.ecSessionId = driver.
|
|
44
|
+
if (environment.isEC) {
|
|
45
|
+
settings.environment.ecSessionId = (await driver.getSessionId());
|
|
45
46
|
}
|
|
46
|
-
if (
|
|
47
|
-
(_b = (
|
|
47
|
+
if (environment.isWeb) {
|
|
48
|
+
(_b = (_g = settings.environment).userAgent) !== null && _b !== void 0 ? _b : (_g.userAgent = (_c = (await driver.getUserAgentLegacy())) !== null && _c !== void 0 ? _c : undefined);
|
|
48
49
|
}
|
|
49
|
-
if (!settings.environment.deviceName &&
|
|
50
|
-
settings.environment.deviceName =
|
|
50
|
+
if (!settings.environment.deviceName && environment.deviceName) {
|
|
51
|
+
settings.environment.deviceName = environment.deviceName;
|
|
51
52
|
}
|
|
52
53
|
if (!settings.environment.os) {
|
|
53
|
-
if (
|
|
54
|
-
settings.environment.os =
|
|
54
|
+
if (environment.isNative && environment.platformName) {
|
|
55
|
+
settings.environment.os = environment.platformName;
|
|
55
56
|
if (!settings.keepPlatformNameAsIs) {
|
|
56
|
-
if ((
|
|
57
|
+
if ((_d = settings.environment.os) === null || _d === void 0 ? void 0 : _d.startsWith('android')) {
|
|
57
58
|
settings.environment.os = `Android${settings.environment.os.slice(7)}`;
|
|
58
59
|
}
|
|
59
|
-
if ((
|
|
60
|
+
if ((_e = settings.environment.os) === null || _e === void 0 ? void 0 : _e.startsWith('ios')) {
|
|
60
61
|
settings.environment.os = `iOS${settings.environment.os.slice(3)}`;
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
if (
|
|
64
|
-
settings.environment.os += ` ${
|
|
64
|
+
if (environment.platformVersion) {
|
|
65
|
+
settings.environment.os += ` ${environment.platformVersion}`;
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
else if (
|
|
68
|
-
((
|
|
69
|
-
(
|
|
70
|
-
settings.environment.os = `${
|
|
68
|
+
else if (environment.isChromium &&
|
|
69
|
+
((environment.isWindows && Number.parseInt(environment.browserVersion) >= 107) ||
|
|
70
|
+
(environment.isMac && Number.parseInt(environment.browserVersion) >= 90))) {
|
|
71
|
+
settings.environment.os = `${environment.platformName} ${(_f = environment.platformVersion) !== null && _f !== void 0 ? _f : ''}`.trim();
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
if (!settings.environment.viewportSize ||
|
|
74
|
+
if (!settings.environment.viewportSize || environment.isMobile) {
|
|
75
|
+
const viewport = await driver.getViewport();
|
|
74
76
|
const size = await driver.getViewportSize();
|
|
75
|
-
settings.environment.viewportSize = utils.geometry.scale(size,
|
|
77
|
+
settings.environment.viewportSize = utils.geometry.scale(size, viewport.viewportScale);
|
|
76
78
|
}
|
|
77
79
|
else {
|
|
78
80
|
await driver.setViewportSize(settings.environment.viewportSize);
|
|
@@ -4,16 +4,19 @@ exports.takeDomCapture = void 0;
|
|
|
4
4
|
const req_1 = require("@applitools/req");
|
|
5
5
|
const { getCaptureDomPoll, getPollResult, getCaptureDomPollForIE, getPollResultForIE, } = require('@applitools/dom-capture');
|
|
6
6
|
async function takeDomCapture({ driver, settings, logger, }) {
|
|
7
|
-
var _a
|
|
8
|
-
const
|
|
7
|
+
var _a;
|
|
8
|
+
const environment = await driver.getEnvironment();
|
|
9
|
+
const features = await driver.getFeatures();
|
|
10
|
+
const isLegacyBrowser = environment.isIE || environment.isEdgeLegacy;
|
|
9
11
|
const arg = {
|
|
10
|
-
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) ||
|
|
12
|
+
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) ||
|
|
13
|
+
(environment.isIOS ? 100000 : 250 * 1024 * 1024)),
|
|
11
14
|
};
|
|
12
15
|
const scripts = {
|
|
13
|
-
main:
|
|
16
|
+
main: features.canExecuteOnlyFunctionScripts
|
|
14
17
|
? require('@applitools/dom-capture').captureDomPoll
|
|
15
18
|
: `return (${isLegacyBrowser ? await getCaptureDomPollForIE() : await getCaptureDomPoll()}).apply(null, arguments);`,
|
|
16
|
-
poll:
|
|
19
|
+
poll: features.canExecuteOnlyFunctionScripts
|
|
17
20
|
? require('@applitools/dom-capture').pollResult
|
|
18
21
|
: `return (${isLegacyBrowser ? await getPollResultForIE() : await getPollResult()}).apply(null, arguments);`,
|
|
19
22
|
};
|
|
@@ -63,12 +66,14 @@ async function takeDomCapture({ driver, settings, logger, }) {
|
|
|
63
66
|
return dom;
|
|
64
67
|
}
|
|
65
68
|
async function fetchCssResource(url) {
|
|
69
|
+
var _a;
|
|
66
70
|
logger.log(`Request to download css will be sent to the address "[GET]${url}"`);
|
|
67
71
|
try {
|
|
68
72
|
const response = await (0, req_1.req)(url, {
|
|
73
|
+
timeout: (_a = settings === null || settings === void 0 ? void 0 : settings.fetchTimeout) !== null && _a !== void 0 ? _a : 60000,
|
|
69
74
|
retry: {
|
|
70
75
|
limit: 1,
|
|
71
|
-
validate: ({ response, error }) =>
|
|
76
|
+
validate: ({ response, error }) => !!error || !response.ok,
|
|
72
77
|
},
|
|
73
78
|
fetch: settings === null || settings === void 0 ? void 0 : settings.fetch,
|
|
74
79
|
});
|
|
@@ -30,7 +30,6 @@ function makeGetManagerResults({ core, storage, logger: defaultLogger, }) {
|
|
|
30
30
|
if (!duplicateContainers.length)
|
|
31
31
|
logger.log('No duplicate tests found.');
|
|
32
32
|
else {
|
|
33
|
-
logger.log(`Duplicates found (${duplicateContainers.length} in total), cleaning them up...`);
|
|
34
33
|
await Promise.all(duplicateContainers.map(async (container) => {
|
|
35
34
|
if (container.result) {
|
|
36
35
|
await core.deleteTest({
|
package/dist/open-eyes.js
CHANGED
|
@@ -54,7 +54,8 @@ function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core,
|
|
|
54
54
|
(_p = settings.ignoreBaseline) !== null && _p !== void 0 ? _p : (settings.ignoreBaseline = false);
|
|
55
55
|
(_q = settings.compareWithParentBranch) !== null && _q !== void 0 ? _q : (settings.compareWithParentBranch = false);
|
|
56
56
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
|
|
57
|
-
|
|
57
|
+
const environment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
|
|
58
|
+
if (environment === null || environment === void 0 ? void 0 : environment.isEC) {
|
|
58
59
|
(_r = settings.properties) !== null && _r !== void 0 ? _r : (settings.properties = []);
|
|
59
60
|
settings.properties.push({ name: 'Running platform', value: 'Execution cloud' });
|
|
60
61
|
}
|
|
@@ -70,7 +71,7 @@ function makeOpenEyes({ type: defaultType = 'classic', concurrency, batch, core,
|
|
|
70
71
|
testConcurrency: concurrency,
|
|
71
72
|
concurrentRendersPerTest: (_u = (_t = (_s = config === null || config === void 0 ? void 0 : config.check) === null || _s === void 0 ? void 0 : _s.renderers) === null || _t === void 0 ? void 0 : _t.length) !== null && _u !== void 0 ? _u : 1,
|
|
72
73
|
node: { version: process.version, platform: process.platform, arch: process.arch },
|
|
73
|
-
driverUrl: driver === null || driver === void 0 ? void 0 : driver.
|
|
74
|
+
driverUrl: await (driver === null || driver === void 0 ? void 0 : driver.getDriverUrl()),
|
|
74
75
|
extractedCIProvider: (0, extract_ci_provider_1.extractCIProvider)(),
|
|
75
76
|
},
|
|
76
77
|
},
|
|
@@ -39,7 +39,7 @@ const utils = __importStar(require("@applitools/utils"));
|
|
|
39
39
|
const chalk_1 = __importDefault(require("chalk"));
|
|
40
40
|
function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
|
|
41
41
|
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
|
|
42
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
42
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
43
43
|
logger.log('Command "checkAndClose" is called with settings', settings);
|
|
44
44
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
45
45
|
logger.warn('Command "checkAndClose" was called after test was already aborted');
|
|
@@ -63,8 +63,9 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
63
63
|
let selectorsToCalculate;
|
|
64
64
|
const driver = spec && (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
|
|
65
65
|
if (driver) {
|
|
66
|
+
const environment = await driver.getEnvironment();
|
|
66
67
|
if (uniqueRenderers.length === 0) {
|
|
67
|
-
if (
|
|
68
|
+
if (environment.isWeb) {
|
|
68
69
|
const viewportSize = await driver.getViewportSize();
|
|
69
70
|
uniqueRenderers.push({ name: 'chrome', ...viewportSize });
|
|
70
71
|
}
|
|
@@ -73,8 +74,8 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
let cleanupGeneratedSelectors;
|
|
76
|
-
if (
|
|
77
|
-
userAgent = driver.
|
|
77
|
+
if (environment.isWeb) {
|
|
78
|
+
userAgent = (_b = (await driver.getUserAgentLegacy())) !== null && _b !== void 0 ? _b : undefined;
|
|
78
79
|
const generated = await (0, generate_safe_selectors_1.generateSafeSelectors)({
|
|
79
80
|
context: driver.currentContext,
|
|
80
81
|
elementReferences: [
|
|
@@ -86,22 +87,22 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
86
87
|
cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
|
|
87
88
|
selectorsToCalculate = generated.selectors;
|
|
88
89
|
if (elementReferenceToTarget) {
|
|
89
|
-
if (!((
|
|
90
|
+
if (!((_c = selectorsToCalculate[0]) === null || _c === void 0 ? void 0 : _c.safeSelector))
|
|
90
91
|
throw new Error('Target element not found');
|
|
91
92
|
regionToTarget = selectorsToCalculate[0].safeSelector;
|
|
92
93
|
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
93
94
|
}
|
|
94
95
|
if (settings.scrollRootElement) {
|
|
95
|
-
scrollRootSelector = (
|
|
96
|
+
scrollRootSelector = (_d = selectorsToCalculate[0].safeSelector) !== null && _d !== void 0 ? _d : undefined;
|
|
96
97
|
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
else {
|
|
100
101
|
regionToTarget = (0, driver_1.isSelector)(elementReferenceToTarget)
|
|
101
|
-
? (
|
|
102
|
+
? (_f = (_e = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _e === void 0 ? void 0 : _e.call(spec, settings.scrollRootElement)) !== null && _f !== void 0 ? _f : undefined
|
|
102
103
|
: undefined;
|
|
103
104
|
scrollRootSelector = (0, driver_1.isSelector)(settings.scrollRootElement)
|
|
104
|
-
? (
|
|
105
|
+
? (_h = (_g = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _g === void 0 ? void 0 : _g.call(spec, settings.scrollRootElement)) !== null && _h !== void 0 ? _h : undefined
|
|
105
106
|
: undefined;
|
|
106
107
|
}
|
|
107
108
|
const currentContext = driver.currentContext;
|
|
@@ -116,7 +117,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
116
117
|
},
|
|
117
118
|
hooks: {
|
|
118
119
|
async beforeSnapshots() {
|
|
119
|
-
if (settings.lazyLoad &&
|
|
120
|
+
if (settings.lazyLoad && environment.isWeb) {
|
|
120
121
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
121
122
|
context: driver.currentContext,
|
|
122
123
|
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
@@ -130,7 +131,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
130
131
|
getIOSDevices: ufgClient.getIOSDevices,
|
|
131
132
|
},
|
|
132
133
|
};
|
|
133
|
-
if (
|
|
134
|
+
if (environment.isWeb) {
|
|
134
135
|
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
|
|
135
136
|
}
|
|
136
137
|
else {
|
|
@@ -151,7 +152,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
151
152
|
snapshots = !utils.types.isArray(target) ? Array(uniqueRenderers.length).fill(target) : target;
|
|
152
153
|
snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
|
|
153
154
|
}
|
|
154
|
-
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (
|
|
155
|
+
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_j = elementReferenceToTarget) !== null && _j !== void 0 ? _j : settings.region);
|
|
155
156
|
selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
|
|
156
157
|
originalSelector: selector,
|
|
157
158
|
safeSelector: selector,
|
package/dist/ufg/check.js
CHANGED
|
@@ -39,7 +39,7 @@ const utils = __importStar(require("@applitools/utils"));
|
|
|
39
39
|
const chalk_1 = __importDefault(require("chalk"));
|
|
40
40
|
function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
|
|
41
41
|
return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
|
|
42
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
42
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
43
43
|
logger.log('Command "check" is called with settings', settings);
|
|
44
44
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
45
45
|
logger.warn('Command "check" was called after test was already aborted');
|
|
@@ -63,9 +63,10 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultL
|
|
|
63
63
|
let selectorsToCalculate;
|
|
64
64
|
const driver = spec && (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
|
|
65
65
|
if (driver) {
|
|
66
|
+
const environment = await driver.getEnvironment();
|
|
66
67
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
67
68
|
if (uniqueRenderers.length === 0) {
|
|
68
|
-
if (
|
|
69
|
+
if (environment.isWeb) {
|
|
69
70
|
const viewportSize = await driver.getViewportSize();
|
|
70
71
|
uniqueRenderers.push({ name: 'chrome', ...viewportSize });
|
|
71
72
|
}
|
|
@@ -74,8 +75,8 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultL
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
let cleanupGeneratedSelectors;
|
|
77
|
-
if (
|
|
78
|
-
userAgent = driver.
|
|
78
|
+
if (environment.isWeb) {
|
|
79
|
+
userAgent = (_c = (await driver.getUserAgentLegacy())) !== null && _c !== void 0 ? _c : undefined;
|
|
79
80
|
const generated = await (0, generate_safe_selectors_1.generateSafeSelectors)({
|
|
80
81
|
context: driver.currentContext,
|
|
81
82
|
elementReferences: [
|
|
@@ -87,22 +88,22 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultL
|
|
|
87
88
|
cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
|
|
88
89
|
selectorsToCalculate = generated.selectors;
|
|
89
90
|
if (elementReferenceToTarget) {
|
|
90
|
-
if (!((
|
|
91
|
+
if (!((_d = selectorsToCalculate[0]) === null || _d === void 0 ? void 0 : _d.safeSelector))
|
|
91
92
|
throw new Error('Target element not found');
|
|
92
93
|
regionToTarget = selectorsToCalculate[0].safeSelector;
|
|
93
94
|
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
94
95
|
}
|
|
95
96
|
if (settings.scrollRootElement) {
|
|
96
|
-
scrollRootSelector = (
|
|
97
|
+
scrollRootSelector = (_e = selectorsToCalculate[0].safeSelector) !== null && _e !== void 0 ? _e : undefined;
|
|
97
98
|
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
101
|
else {
|
|
101
102
|
regionToTarget = (0, driver_1.isSelector)(elementReferenceToTarget)
|
|
102
|
-
? (
|
|
103
|
+
? (_g = (_f = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _f === void 0 ? void 0 : _f.call(spec, settings.scrollRootElement)) !== null && _g !== void 0 ? _g : undefined
|
|
103
104
|
: undefined;
|
|
104
105
|
scrollRootSelector = (0, driver_1.isSelector)(settings.scrollRootElement)
|
|
105
|
-
? (
|
|
106
|
+
? (_j = (_h = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _h === void 0 ? void 0 : _h.call(spec, settings.scrollRootElement)) !== null && _j !== void 0 ? _j : undefined
|
|
106
107
|
: undefined;
|
|
107
108
|
}
|
|
108
109
|
const currentContext = driver.currentContext;
|
|
@@ -117,7 +118,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultL
|
|
|
117
118
|
},
|
|
118
119
|
hooks: {
|
|
119
120
|
async beforeSnapshots() {
|
|
120
|
-
if (settings.lazyLoad &&
|
|
121
|
+
if (settings.lazyLoad && environment.isWeb) {
|
|
121
122
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
122
123
|
context: driver.currentContext,
|
|
123
124
|
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
@@ -131,7 +132,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultL
|
|
|
131
132
|
getIOSDevices: ufgClient.getIOSDevices,
|
|
132
133
|
},
|
|
133
134
|
};
|
|
134
|
-
if (
|
|
135
|
+
if (environment.isWeb) {
|
|
135
136
|
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
|
|
136
137
|
}
|
|
137
138
|
else {
|
|
@@ -152,7 +153,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultL
|
|
|
152
153
|
snapshots = !utils.types.isArray(target) ? Array(uniqueRenderers.length).fill(target) : target;
|
|
153
154
|
snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
|
|
154
155
|
}
|
|
155
|
-
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (
|
|
156
|
+
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_k = elementReferenceToTarget) !== null && _k !== void 0 ? _k : settings.region);
|
|
156
157
|
selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
|
|
157
158
|
originalSelector: selector,
|
|
158
159
|
safeSelector: selector,
|
|
@@ -27,7 +27,7 @@ exports.makeGetNMLClient = void 0;
|
|
|
27
27
|
const nml_client_1 = require("@applitools/nml-client");
|
|
28
28
|
const utils = __importStar(require("@applitools/utils"));
|
|
29
29
|
function makeGetNMLClient({ client, logger: defaultLogger }) {
|
|
30
|
-
const getNMLClientWithCache = utils.general.cachify(getNMLClient, ([options]) => client ? 'default' : [options.driver.
|
|
30
|
+
const getNMLClientWithCache = utils.general.cachify(getNMLClient, ([options]) => client ? 'default' : [options.driver.guid, options.config]);
|
|
31
31
|
if (client)
|
|
32
32
|
getNMLClientWithCache.setCachedValue('default', Promise.resolve(client));
|
|
33
33
|
return getNMLClientWithCache;
|
package/dist/ufg/open-eyes.js
CHANGED
|
@@ -35,14 +35,15 @@ const abort_controller_1 = require("abort-controller");
|
|
|
35
35
|
const utils = __importStar(require("@applitools/utils"));
|
|
36
36
|
function makeOpenEyes({ core, spec, logger: defaultLogger }) {
|
|
37
37
|
return async function openEyes({ target, settings, base, logger = defaultLogger, }) {
|
|
38
|
-
var _a;
|
|
38
|
+
var _a, _b;
|
|
39
39
|
logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), base ? 'predefined eyes' : '');
|
|
40
40
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger }));
|
|
41
41
|
if (driver && !base) {
|
|
42
|
+
const environment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
|
|
42
43
|
const currentContext = driver.currentContext;
|
|
43
44
|
(_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
|
|
44
|
-
if (
|
|
45
|
-
settings.environment.ecSessionId = driver.
|
|
45
|
+
if (environment.isEC) {
|
|
46
|
+
settings.environment.ecSessionId = (_b = (await driver.getSessionId())) !== null && _b !== void 0 ? _b : undefined;
|
|
46
47
|
}
|
|
47
48
|
if (settings.environment.viewportSize) {
|
|
48
49
|
await driver.setViewportSize(settings.environment.viewportSize);
|
|
@@ -27,41 +27,43 @@ exports.extractCrossFrames = exports.deserializeDomSnapshot = exports.takeDomSna
|
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
28
|
const { getProcessPagePoll, getPollResult, getProcessPagePollForIE, getPollResultForIE, } = require('@applitools/dom-snapshot');
|
|
29
29
|
async function takeDomSnapshot({ context, settings, logger, }) {
|
|
30
|
-
var _a;
|
|
31
30
|
const driver = context.driver;
|
|
32
|
-
const
|
|
31
|
+
const environment = await driver.getEnvironment();
|
|
32
|
+
const features = await driver.getFeatures();
|
|
33
|
+
const cookies = features.allCookies ? await driver.getCookies().catch(() => []) : [];
|
|
33
34
|
const snapshot = deserializeDomSnapshot({ snapshot: await takeContextDomSnapshot({ context }) });
|
|
34
35
|
snapshot.cookies = cookies;
|
|
35
36
|
return snapshot;
|
|
36
37
|
async function takeContextDomSnapshot({ context }) {
|
|
37
38
|
// logger.log(`taking dom snapshot. ${context._reference ? `context referece: ${JSON.stringify(context._reference)}` : ''}`)
|
|
38
|
-
var _a, _b, _c
|
|
39
|
-
if (!
|
|
39
|
+
var _a, _b, _c;
|
|
40
|
+
if (!features.allCookies) {
|
|
40
41
|
cookies.push(...(await context.getCookies()));
|
|
41
42
|
}
|
|
42
|
-
const isLegacyBrowser =
|
|
43
|
+
const isLegacyBrowser = environment.isIE || environment.isEdgeLegacy;
|
|
43
44
|
const arg = {
|
|
44
45
|
dontFetchResources: settings === null || settings === void 0 ? void 0 : settings.disableBrowserFetching,
|
|
45
46
|
skipResources: settings === null || settings === void 0 ? void 0 : settings.skipResources,
|
|
46
47
|
removeReverseProxyURLPrefixes: Boolean(process.env.APPLITOOLS_SCRIPT_REMOVE_REVERSE_PROXY_URL_PREFIXES),
|
|
47
|
-
chunkByteLength: (
|
|
48
|
+
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) ||
|
|
49
|
+
(environment.isIOS ? 100000 : 250 * 1024 * 1024)),
|
|
48
50
|
serializeResources: true,
|
|
49
51
|
compressResources: false,
|
|
50
52
|
showLogs: settings === null || settings === void 0 ? void 0 : settings.showLogs,
|
|
51
53
|
};
|
|
52
54
|
const scripts = {
|
|
53
|
-
main:
|
|
55
|
+
main: features.canExecuteOnlyFunctionScripts
|
|
54
56
|
? require('@applitools/dom-snapshot').processPagePoll
|
|
55
57
|
: `return (${isLegacyBrowser ? await getProcessPagePollForIE() : await getProcessPagePoll()}).apply(null, arguments);`,
|
|
56
|
-
poll:
|
|
58
|
+
poll: features.canExecuteOnlyFunctionScripts
|
|
57
59
|
? require('@applitools/dom-snapshot').pollResult
|
|
58
60
|
: `return (${isLegacyBrowser ? await getPollResultForIE() : await getPollResult()}).apply(null, arguments);`,
|
|
59
61
|
};
|
|
60
62
|
const snapshot = await context.executePoll(scripts, {
|
|
61
63
|
main: arg,
|
|
62
64
|
poll: arg,
|
|
63
|
-
executionTimeout: (
|
|
64
|
-
pollTimeout: (
|
|
65
|
+
executionTimeout: (_b = settings === null || settings === void 0 ? void 0 : settings.executionTimeout) !== null && _b !== void 0 ? _b : 5 * 60 * 1000,
|
|
66
|
+
pollTimeout: (_c = settings === null || settings === void 0 ? void 0 : settings.pollTimeout) !== null && _c !== void 0 ? _c : 200,
|
|
65
67
|
});
|
|
66
68
|
const crossFrames = extractCrossFrames({ snapshot, logger });
|
|
67
69
|
for (const { reference, parentSnapshot, cdtNode } of crossFrames) {
|
|
@@ -4,16 +4,17 @@ exports.takeVHSes = void 0;
|
|
|
4
4
|
async function takeVHSes({ driver, settings, hooks, logger, }) {
|
|
5
5
|
var _a;
|
|
6
6
|
logger.log('taking VHS');
|
|
7
|
-
|
|
7
|
+
const environment = await driver.getEnvironment();
|
|
8
|
+
if (!environment.isAndroid && !environment.isIOS) {
|
|
8
9
|
throw new Error('cannot take VHS on mobile device other than iOS or Android');
|
|
9
10
|
}
|
|
10
11
|
await ((_a = hooks === null || hooks === void 0 ? void 0 : hooks.beforeSnapshots) === null || _a === void 0 ? void 0 : _a.call(hooks));
|
|
11
|
-
const trigger = await driver.waitFor(
|
|
12
|
+
const trigger = await driver.waitFor(environment.isAndroid
|
|
12
13
|
? { type: 'xpath', selector: `//android.widget.Button[@content-desc="UFG_TriggerArea"]` }
|
|
13
14
|
: { type: 'accessibility id', selector: 'UFG_TriggerArea' }, { timeout: 30000 });
|
|
14
15
|
if (!trigger)
|
|
15
16
|
throw new Error('Trigger element could not be found');
|
|
16
|
-
if (
|
|
17
|
+
if (environment.isAndroid) {
|
|
17
18
|
const apiKeyInput = await driver.element({
|
|
18
19
|
type: 'xpath',
|
|
19
20
|
selector: `//android.widget.EditText[@content-desc="UFG_Apikey"]`,
|
|
@@ -41,14 +42,14 @@ async function takeVHSes({ driver, settings, hooks, logger, }) {
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
await trigger.click(); // TODO handle stale element exception and then find the trigger again and click it
|
|
44
|
-
let label = await driver.waitFor(
|
|
45
|
+
let label = await driver.waitFor(environment.isAndroid
|
|
45
46
|
? { type: 'xpath', selector: `//android.widget.TextView[@content-desc="UFG_SecondaryLabel"]` }
|
|
46
47
|
: { type: 'accessibility id', selector: 'UFG_SecondaryLabel' }, { timeout: 10000 });
|
|
47
48
|
if (!label) {
|
|
48
49
|
// This might happen if the tap on the trigger area didn't happen due to Appium bug. So we try to find the trigger again and if it's present, we'll tap it.
|
|
49
50
|
// If the trigger area is not present, then we're probably at the middle of taking the VHS - give it 50 seconds more until we give up
|
|
50
51
|
logger.log('UFG_SecondaryLabel was not found after 10 seconds, trying to click UFG_TriggerArea again');
|
|
51
|
-
const triggerRetry = await driver.waitFor(
|
|
52
|
+
const triggerRetry = await driver.waitFor(environment.isAndroid
|
|
52
53
|
? { type: 'xpath', selector: `//android.widget.Button[@content-desc="UFG_TriggerArea"]` }
|
|
53
54
|
: { type: 'accessibility id', selector: 'UFG_TriggerArea' }, { timeout: 30000 });
|
|
54
55
|
if (triggerRetry) {
|
|
@@ -58,7 +59,7 @@ async function takeVHSes({ driver, settings, hooks, logger, }) {
|
|
|
58
59
|
else {
|
|
59
60
|
logger.log('UFG_TriggerArea was NOT found on retry. Probably VHS is being taken.');
|
|
60
61
|
}
|
|
61
|
-
label = await driver.waitFor(
|
|
62
|
+
label = await driver.waitFor(environment.isAndroid
|
|
62
63
|
? { type: 'xpath', selector: `//android.widget.TextView[@content-desc="UFG_SecondaryLabel"]` }
|
|
63
64
|
: { type: 'accessibility id', selector: 'UFG_SecondaryLabel' }, { timeout: 50000 });
|
|
64
65
|
if (!label) {
|
|
@@ -71,7 +72,7 @@ async function takeVHSes({ driver, settings, hooks, logger, }) {
|
|
|
71
72
|
if (info.error)
|
|
72
73
|
throw new Error(`Error while taking VHS - ${info.error}`);
|
|
73
74
|
let vhs = '';
|
|
74
|
-
if (
|
|
75
|
+
if (environment.isIOS) {
|
|
75
76
|
const label = await driver.element({ type: 'accessibility id', selector: 'UFG_Label' });
|
|
76
77
|
if (!label)
|
|
77
78
|
throw new Error('VHS label element could not be found');
|
|
@@ -99,14 +100,14 @@ async function takeVHSes({ driver, settings, hooks, logger, }) {
|
|
|
99
100
|
else {
|
|
100
101
|
throw new Error(`unknown mode for android: ${info.mode}`);
|
|
101
102
|
}
|
|
102
|
-
const clear = await driver.waitFor(
|
|
103
|
+
const clear = await driver.waitFor(environment.isAndroid
|
|
103
104
|
? { type: 'xpath', selector: `//android.widget.Button[@content-desc="UFG_ClearArea"]` }
|
|
104
105
|
: { type: 'accessibility id', selector: 'UFG_ClearArea' }, { timeout: 30000 });
|
|
105
106
|
if (!clear)
|
|
106
107
|
throw new Error('Clear element could not be found');
|
|
107
108
|
await clear.click();
|
|
108
109
|
let snapshot;
|
|
109
|
-
if (
|
|
110
|
+
if (environment.isAndroid) {
|
|
110
111
|
snapshot = {
|
|
111
112
|
platformName: 'android',
|
|
112
113
|
vhsType: info.flavorName,
|
|
@@ -2,27 +2,25 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.separateDuplicateResults = void 0;
|
|
4
4
|
function separateDuplicateResults(containers) {
|
|
5
|
-
var _a;
|
|
6
5
|
const containerByBaselineId = new Map();
|
|
7
6
|
const duplicates = [];
|
|
8
7
|
const possibleDuplicateContainers = containers.filter(container => { var _a; return !((_a = container.result) === null || _a === void 0 ? void 0 : _a.keepIfDuplicate); });
|
|
9
8
|
for (const container of possibleDuplicateContainers) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
if (startedAt2 > startedAt1) {
|
|
9
|
+
if (container.result) {
|
|
10
|
+
const containerForThisBaseline = containerByBaselineId.get(container.result.baselineId);
|
|
11
|
+
if (containerForThisBaseline === null || containerForThisBaseline === void 0 ? void 0 : containerForThisBaseline.result) {
|
|
12
|
+
const initializedAt1 = Date.parse(containerForThisBaseline.result.initializedAt);
|
|
13
|
+
const initializedAt2 = Date.parse(container.result.initializedAt);
|
|
14
|
+
if (initializedAt2 > initializedAt1) {
|
|
17
15
|
duplicates.push(containerForThisBaseline);
|
|
18
|
-
containerByBaselineId.set(baselineId, container);
|
|
16
|
+
containerByBaselineId.set(container.result.baselineId, container);
|
|
19
17
|
}
|
|
20
18
|
else {
|
|
21
19
|
duplicates.push(container);
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
22
|
else {
|
|
25
|
-
containerByBaselineId.set(baselineId, container);
|
|
23
|
+
containerByBaselineId.set(container.result.baselineId, container);
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
26
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.6",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -75,19 +75,19 @@
|
|
|
75
75
|
]
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@applitools/core-base": "1.1.
|
|
78
|
+
"@applitools/core-base": "1.1.45",
|
|
79
79
|
"@applitools/dom-capture": "11.2.1",
|
|
80
80
|
"@applitools/dom-snapshot": "4.7.7",
|
|
81
|
-
"@applitools/driver": "1.11.
|
|
82
|
-
"@applitools/ec-client": "1.2.
|
|
81
|
+
"@applitools/driver": "1.11.38",
|
|
82
|
+
"@applitools/ec-client": "1.2.19",
|
|
83
83
|
"@applitools/logger": "1.1.48",
|
|
84
|
-
"@applitools/nml-client": "1.3.
|
|
84
|
+
"@applitools/nml-client": "1.3.43",
|
|
85
85
|
"@applitools/req": "1.1.33",
|
|
86
|
-
"@applitools/screenshoter": "3.7.
|
|
87
|
-
"@applitools/snippets": "2.4.
|
|
86
|
+
"@applitools/screenshoter": "3.7.33",
|
|
87
|
+
"@applitools/snippets": "2.4.18",
|
|
88
88
|
"@applitools/socket": "1.0.10",
|
|
89
|
-
"@applitools/spec-driver-webdriver": "1.0.
|
|
90
|
-
"@applitools/ufg-client": "1.2.
|
|
89
|
+
"@applitools/spec-driver-webdriver": "1.0.19",
|
|
90
|
+
"@applitools/ufg-client": "1.2.6",
|
|
91
91
|
"@applitools/utils": "1.3.32",
|
|
92
92
|
"@types/ws": "8.5.4",
|
|
93
93
|
"abort-controller": "3.0.0",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@applitools/bongo": "^3.0.3",
|
|
102
102
|
"@applitools/sdk-coverage-tests": "^3.0.0",
|
|
103
|
-
"@applitools/spec-driver-puppeteer": "^1.1.
|
|
104
|
-
"@applitools/spec-driver-selenium": "^1.5.
|
|
105
|
-
"@applitools/spec-driver-webdriverio": "^1.4.
|
|
103
|
+
"@applitools/spec-driver-puppeteer": "^1.1.51",
|
|
104
|
+
"@applitools/spec-driver-selenium": "^1.5.36",
|
|
105
|
+
"@applitools/spec-driver-webdriverio": "^1.4.34",
|
|
106
106
|
"@applitools/test-server": "^1.1.28",
|
|
107
107
|
"@applitools/test-utils": "^1.5.15",
|
|
108
108
|
"@types/node": "^12.20.55",
|