@applitools/eyes-browser 1.4.21 → 1.4.23
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 +25 -0
- package/dist/index.js +715 -259
- package/package.json +2 -2
- package/types/SDK.d.ts +1 -0
- package/types/input/CheckSettings.d.ts +5 -2
- package/types/input/Configuration.d.ts +11 -5
package/dist/index.js
CHANGED
|
@@ -4213,7 +4213,7 @@ var require_guard = __commonJS({
|
|
|
4213
4213
|
return result;
|
|
4214
4214
|
};
|
|
4215
4215
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4216
|
-
exports.custom = exports.instanceOf = exports.isOneOf = exports.isEnumValue = exports.isObject = exports.isArray = exports.isNumeric = exports.isAlpha = exports.isAlphanumeric = exports.isString = exports.isGreaterThenOrEqual = exports.isGreaterThen = exports.isLessThenOrEqual = exports.isLessThen = exports.isInteger = exports.isNumber = exports.isBoolean = exports.notNull = void 0;
|
|
4216
|
+
exports.custom = exports.instanceOf = exports.isOneOf = exports.isEnumValue = exports.isObject = exports.isArray = exports.isNumeric = exports.isAlpha = exports.isAlphanumeric = exports.isString = exports.isGreaterThenOrEqual = exports.isGreaterThen = exports.isLessThenOrEqual = exports.isLessThen = exports.isFunction = exports.isInteger = exports.isNumber = exports.isBoolean = exports.notNull = void 0;
|
|
4217
4217
|
var types20 = __importStar(require_types());
|
|
4218
4218
|
function notNull(value, { name }) {
|
|
4219
4219
|
if (types20.isNull(value)) {
|
|
@@ -4255,6 +4255,12 @@ var require_guard = __commonJS({
|
|
|
4255
4255
|
isGreaterThenOrEqual(value, gte, { name });
|
|
4256
4256
|
}
|
|
4257
4257
|
exports.isInteger = isInteger;
|
|
4258
|
+
function isFunction(value, { name, strict = true }) {
|
|
4259
|
+
if ((strict || !types20.isNull(value)) && !types20.isFunction(value)) {
|
|
4260
|
+
throw new Error(`IllegalArgument: ${name} must be of type function. Received ${value}`);
|
|
4261
|
+
}
|
|
4262
|
+
}
|
|
4263
|
+
exports.isFunction = isFunction;
|
|
4258
4264
|
function isLessThen(value, limit, { name }) {
|
|
4259
4265
|
if (!(value < limit)) {
|
|
4260
4266
|
throw new Error(`IllegalArgument: ${name} must be < ${limit}. Received ${value}`);
|
|
@@ -4392,7 +4398,7 @@ var require_general = __commonJS({
|
|
|
4392
4398
|
return result;
|
|
4393
4399
|
};
|
|
4394
4400
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4395
|
-
exports.pluralize = exports.extend = exports.wrap = exports.batchify = exports.cachify = exports.absolutizeUrl = exports.removeUndefinedProps = exports.toUriEncoding = exports.toUnAnchoredUri = exports.toString = exports.toJSON = exports.sleep = exports.jwtDecode = exports.shortid = exports.guid = exports.getEnvValue = void 0;
|
|
4401
|
+
exports.dedupAndMap = exports.deepEqual = exports.pluralize = exports.extend = exports.wrap = exports.batchify = exports.cachify = exports.absolutizeUrl = exports.removeUndefinedProps = exports.toUriEncoding = exports.toUnAnchoredUri = exports.toString = exports.toJSON = exports.sleep = exports.jwtDecode = exports.shortid = exports.guid = exports.getEnvValue = void 0;
|
|
4396
4402
|
var buffer_1 = require_buffer();
|
|
4397
4403
|
var types20 = __importStar(require_types());
|
|
4398
4404
|
function getEnvValue(name, type) {
|
|
@@ -4547,6 +4553,50 @@ var require_general = __commonJS({
|
|
|
4547
4553
|
return res;
|
|
4548
4554
|
}
|
|
4549
4555
|
exports.pluralize = pluralize;
|
|
4556
|
+
function deepEqual(value1, value2) {
|
|
4557
|
+
return _deepEqual(value1, value2, /* @__PURE__ */ new Set());
|
|
4558
|
+
}
|
|
4559
|
+
exports.deepEqual = deepEqual;
|
|
4560
|
+
function _deepEqual(value1, value2, visitedObjects) {
|
|
4561
|
+
if (value1 === value2)
|
|
4562
|
+
return true;
|
|
4563
|
+
if (visitedObjects.has(value1) && visitedObjects.has(value2))
|
|
4564
|
+
throw new Error("circular reference");
|
|
4565
|
+
if (typeof value1 === "object" && typeof value2 === "object") {
|
|
4566
|
+
visitedObjects.add(value1);
|
|
4567
|
+
visitedObjects.add(value2);
|
|
4568
|
+
}
|
|
4569
|
+
if (types20.isArray(value1) && types20.isArray(value2)) {
|
|
4570
|
+
if (value1.length !== value2.length)
|
|
4571
|
+
return false;
|
|
4572
|
+
for (let i = 0; i < value1.length; i++) {
|
|
4573
|
+
if (!_deepEqual(value1[i], value2[i], visitedObjects))
|
|
4574
|
+
return false;
|
|
4575
|
+
}
|
|
4576
|
+
return true;
|
|
4577
|
+
}
|
|
4578
|
+
if (types20.isObject(value1) && types20.isObject(value2)) {
|
|
4579
|
+
const keys1 = Object.keys(value1);
|
|
4580
|
+
const keys2 = Object.keys(value2);
|
|
4581
|
+
if (keys1.length !== keys2.length)
|
|
4582
|
+
return false;
|
|
4583
|
+
for (const key of keys1) {
|
|
4584
|
+
if (!_deepEqual(value1[key], value2[key], visitedObjects))
|
|
4585
|
+
return false;
|
|
4586
|
+
}
|
|
4587
|
+
return true;
|
|
4588
|
+
}
|
|
4589
|
+
return false;
|
|
4590
|
+
}
|
|
4591
|
+
async function dedupAndMap(items, transform, isEqual) {
|
|
4592
|
+
const firstIndecies = items.map((value) => items.findIndex((v) => isEqual(v, value)));
|
|
4593
|
+
const uniqueValues = items.filter((_, index) => firstIndecies.indexOf(index) === index);
|
|
4594
|
+
const results = await transform(uniqueValues);
|
|
4595
|
+
const resultMap = /* @__PURE__ */ new WeakMap();
|
|
4596
|
+
uniqueValues.forEach((val, index) => resultMap.set(val, results[index]));
|
|
4597
|
+
return items.map((_, index) => resultMap.get(items[firstIndecies[index]]));
|
|
4598
|
+
}
|
|
4599
|
+
exports.dedupAndMap = dedupAndMap;
|
|
4550
4600
|
}
|
|
4551
4601
|
});
|
|
4552
4602
|
|
|
@@ -21574,7 +21624,7 @@ var require_requests = __commonJS({
|
|
|
21574
21624
|
});
|
|
21575
21625
|
return openCheckAndCloseResponse.then(() => {
|
|
21576
21626
|
logger.log('Request "openCheckAndCloseResponse" finished successfully');
|
|
21577
|
-
})
|
|
21627
|
+
});
|
|
21578
21628
|
}
|
|
21579
21629
|
async function locate({ target, settings, logger = mainLogger }) {
|
|
21580
21630
|
logger = logger.extend(mainLogger, { tags: [`core-request-${utils34.general.shortid()}`] });
|
|
@@ -21721,9 +21771,23 @@ var require_requests = __commonJS({
|
|
|
21721
21771
|
method: "GET",
|
|
21722
21772
|
connectionTimeout: 2e3
|
|
21723
21773
|
});
|
|
21724
|
-
if (response2 && (response2.status >= 200 && response2.status < 300 || response2.status === 404))
|
|
21774
|
+
if (response2 && (response2.status >= 200 && response2.status < 300 || response2.status === 404)) {
|
|
21775
|
+
logger2.log(`UFG 'serviceUrlNew' is available, using: ${serviceUrl}`);
|
|
21776
|
+
logEvent({
|
|
21777
|
+
settings: {
|
|
21778
|
+
level: "Info",
|
|
21779
|
+
event: {
|
|
21780
|
+
type: "serviceUrlNew",
|
|
21781
|
+
message: `UFG 'serviceUrlNew' is available`,
|
|
21782
|
+
serviceUrlNew: serviceUrl
|
|
21783
|
+
},
|
|
21784
|
+
eyesServerUrl: settings2.eyesServerUrl,
|
|
21785
|
+
apiKey: settings2.apiKey
|
|
21786
|
+
}
|
|
21787
|
+
}).catch((err) => logger2.log("Error logging event", { error: err, event: `UFG 'serviceUrlNew' is available` }));
|
|
21725
21788
|
return resolve(serviceUrl);
|
|
21726
|
-
else {
|
|
21789
|
+
} else {
|
|
21790
|
+
logger2.log(`UFG 'serviceUrlNew' is blocked`);
|
|
21727
21791
|
logEvent({
|
|
21728
21792
|
settings: {
|
|
21729
21793
|
level: "Notice",
|
|
@@ -51557,14 +51621,7 @@ var require_open_check_and_close = __commonJS({
|
|
|
51557
51621
|
if (controller.signal.aborted) {
|
|
51558
51622
|
throw new Error('Command "openCheckAndClose" was aborted');
|
|
51559
51623
|
}
|
|
51560
|
-
return
|
|
51561
|
-
try {
|
|
51562
|
-
await requests.openCheckAndClose({ target, settings, logger }).finally(done);
|
|
51563
|
-
} catch (error) {
|
|
51564
|
-
reject(error);
|
|
51565
|
-
done();
|
|
51566
|
-
}
|
|
51567
|
-
});
|
|
51624
|
+
return await requests.openCheckAndClose({ target, settings, logger });
|
|
51568
51625
|
};
|
|
51569
51626
|
}
|
|
51570
51627
|
exports.makeOpenCheckAndClose = makeOpenCheckAndClose;
|
|
@@ -51690,6 +51747,45 @@ var require_eyes = __commonJS({
|
|
|
51690
51747
|
}
|
|
51691
51748
|
});
|
|
51692
51749
|
|
|
51750
|
+
// ../core-base/dist/errors/test-error.js
|
|
51751
|
+
var require_test_error = __commonJS({
|
|
51752
|
+
"../core-base/dist/errors/test-error.js"(exports) {
|
|
51753
|
+
"use strict";
|
|
51754
|
+
init_process();
|
|
51755
|
+
init_setImmediate();
|
|
51756
|
+
init_buffer();
|
|
51757
|
+
init_setInterval();
|
|
51758
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51759
|
+
exports.TestError = void 0;
|
|
51760
|
+
var core_error_1 = require_core_error();
|
|
51761
|
+
var TestError = class extends core_error_1.CoreError {
|
|
51762
|
+
constructor(result) {
|
|
51763
|
+
if (result.status === "Failed") {
|
|
51764
|
+
super(`Test '${result.name}' of '${result.appName}' is failed! See details at ${result.url}`, {
|
|
51765
|
+
reason: "test failed",
|
|
51766
|
+
result
|
|
51767
|
+
});
|
|
51768
|
+
} else if (result.status === "Unresolved") {
|
|
51769
|
+
if (result.isNew) {
|
|
51770
|
+
super(`Test '${result.name}' of '${result.appName}' is new! Please approve the new baseline at ${result.url}`, {
|
|
51771
|
+
reason: "test new",
|
|
51772
|
+
result
|
|
51773
|
+
});
|
|
51774
|
+
} else {
|
|
51775
|
+
super(`Test '${result.name}' of '${result.appName}' detected differences! See details at: ${result.url}`, {
|
|
51776
|
+
reason: "test different",
|
|
51777
|
+
result
|
|
51778
|
+
});
|
|
51779
|
+
}
|
|
51780
|
+
} else {
|
|
51781
|
+
super("");
|
|
51782
|
+
}
|
|
51783
|
+
}
|
|
51784
|
+
};
|
|
51785
|
+
exports.TestError = TestError;
|
|
51786
|
+
}
|
|
51787
|
+
});
|
|
51788
|
+
|
|
51693
51789
|
// ../core-base/dist/index.js
|
|
51694
51790
|
var require_dist2 = __commonJS({
|
|
51695
51791
|
"../core-base/dist/index.js"(exports) {
|
|
@@ -51725,6 +51821,7 @@ var require_dist2 = __commonJS({
|
|
|
51725
51821
|
__exportStar(require_requests(), exports);
|
|
51726
51822
|
__exportStar(require_core_error(), exports);
|
|
51727
51823
|
__exportStar(require_missingApiKeyError(), exports);
|
|
51824
|
+
__exportStar(require_test_error(), exports);
|
|
51728
51825
|
}
|
|
51729
51826
|
});
|
|
51730
51827
|
|
|
@@ -55992,6 +56089,16 @@ var require_driver = __commonJS({
|
|
|
55992
56089
|
async execute(script, arg) {
|
|
55993
56090
|
return this.currentContext.execute(script, arg);
|
|
55994
56091
|
}
|
|
56092
|
+
async executeUserFunction(func) {
|
|
56093
|
+
var _a, _b;
|
|
56094
|
+
if (await ((_b = (_a = this._spec).isUserFunction) === null || _b === void 0 ? void 0 : _b.call(_a, func))) {
|
|
56095
|
+
return this._spec.executeUserFunction(func);
|
|
56096
|
+
} else if (typeof func === "function") {
|
|
56097
|
+
return func();
|
|
56098
|
+
} else {
|
|
56099
|
+
throw new Error(`User function is not supported (${JSON.stringify(func)})`);
|
|
56100
|
+
}
|
|
56101
|
+
}
|
|
55995
56102
|
async visit(url) {
|
|
55996
56103
|
var _a, _b;
|
|
55997
56104
|
await ((_b = (_a = this._spec).visit) === null || _b === void 0 ? void 0 : _b.call(_a, this.target, url));
|
|
@@ -56709,7 +56816,10 @@ var require_take_stitched_screenshot = __commonJS({
|
|
|
56709
56816
|
const preMoveOffset = await scroller.getInnerOffset();
|
|
56710
56817
|
const postMoveOffset = await scroller.moveTo(initialOffset);
|
|
56711
56818
|
const expectedRemainingOffset = utils34.geometry.offsetNegative(initialOffset, postMoveOffset);
|
|
56712
|
-
|
|
56819
|
+
if (typeof wait === "function")
|
|
56820
|
+
await wait();
|
|
56821
|
+
else
|
|
56822
|
+
await utils34.general.sleep(wait);
|
|
56713
56823
|
const contentSize = await scroller.getContentSize({ lazyLoad });
|
|
56714
56824
|
logger.verbose(
|
|
56715
56825
|
"preMoveOffset",
|
|
@@ -56848,7 +56958,10 @@ var require_take_simple_screenshot = __commonJS({
|
|
|
56848
56958
|
logger.verbose("Taking image of...");
|
|
56849
56959
|
const driver = context.driver;
|
|
56850
56960
|
const takeViewportScreenshot = await makeTakeViewportScreenshot({ logger, driver, stabilization, debug });
|
|
56851
|
-
|
|
56961
|
+
if (typeof wait === "function")
|
|
56962
|
+
await wait();
|
|
56963
|
+
else
|
|
56964
|
+
await utils34.general.sleep(wait);
|
|
56852
56965
|
const image = await takeViewportScreenshot({ captureStatusBar, keepNavigationBar });
|
|
56853
56966
|
if (region) {
|
|
56854
56967
|
const cropRegion = await driver.getRegionInViewport(context, region);
|
|
@@ -57122,7 +57235,14 @@ var require_take_screenshot2 = __commonJS({
|
|
|
57122
57235
|
hideCaret: settings.hideCaret,
|
|
57123
57236
|
scrollingMode: (_c = (_b = settings.stitchMode) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : "scroll",
|
|
57124
57237
|
overlap: settings.overlap,
|
|
57125
|
-
wait:
|
|
57238
|
+
wait: async () => {
|
|
57239
|
+
var _a2;
|
|
57240
|
+
if (typeof settings.waitBeforeCapture === "number") {
|
|
57241
|
+
await utils34.general.sleep(settings.waitBeforeCapture);
|
|
57242
|
+
} else if (settings.waitBeforeCapture) {
|
|
57243
|
+
await ((_a2 = driver.executeUserFunction) === null || _a2 === void 0 ? void 0 : _a2.call(driver, settings.waitBeforeCapture));
|
|
57244
|
+
}
|
|
57245
|
+
},
|
|
57126
57246
|
framed: environment.isNative,
|
|
57127
57247
|
lazyLoad: settings.lazyLoad,
|
|
57128
57248
|
stabilization: settings.normalization && {
|
|
@@ -58006,7 +58126,7 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
|
|
|
58006
58126
|
return d4 && (N3.shadowRoot = d4), N3;
|
|
58007
58127
|
}
|
|
58008
58128
|
}(t4);
|
|
58009
|
-
d2(i2.doCaptureDoc), l2(i2.waitForImages), await Promise.all(f2), d2(i2.waitForImages), N2.version = "1.3.0", N2.scriptVersion = "11.5.
|
|
58129
|
+
d2(i2.doCaptureDoc), l2(i2.waitForImages), await Promise.all(f2), d2(i2.waitForImages), N2.version = "1.3.0", N2.scriptVersion = "11.5.5";
|
|
58010
58130
|
const S2 = h2.length ? `${h2.join("\n")}
|
|
58011
58131
|
` : "", A2 = m2.size ? `${Array.from(m2).join("\n")}
|
|
58012
58132
|
` : "", Y2 = JSON.stringify({ separator: y2, cssStartToken: g2, cssEndToken: g2, iframeStartToken: `"${p2}`, iframeEndToken: `${p2}"` });
|
|
@@ -58719,7 +58839,7 @@ var require_requests2 = __commonJS({
|
|
|
58719
58839
|
brokerUrl = result.nextPath;
|
|
58720
58840
|
}
|
|
58721
58841
|
async function takeScreenshots({ settings: settings2, logger = mainLogger }) {
|
|
58722
|
-
var _a
|
|
58842
|
+
var _a;
|
|
58723
58843
|
logger = logger.extend(mainLogger, { tags: [`nml-request-${utils34.general.shortid()}`] });
|
|
58724
58844
|
logger.log('Request "takeScreenshots" called with settings', settings2);
|
|
58725
58845
|
const { localEnvironment, renderEnvironments, environmentSettings } = await (0, get_environments_info_1.getNMLEnvironmentsInfo)({
|
|
@@ -58741,6 +58861,7 @@ var require_requests2 = __commonJS({
|
|
|
58741
58861
|
deviceList: !localEnvironment ? environmentSettings : void 0,
|
|
58742
58862
|
scrollRootElement: fallbackId(settings2.scrollRootElement),
|
|
58743
58863
|
region: fallbackId(settings2.region),
|
|
58864
|
+
sendDom: settings2.sendDom,
|
|
58744
58865
|
selectorsToFindRegionsFor: (_a = settings2.selectorsToFindRegionsFor) === null || _a === void 0 ? void 0 : _a.map((selector) => fallbackId(selector))
|
|
58745
58866
|
}
|
|
58746
58867
|
},
|
|
@@ -58755,22 +58876,33 @@ var require_requests2 = __commonJS({
|
|
|
58755
58876
|
{
|
|
58756
58877
|
image: result.payload.result[0].result.screenshotUrl,
|
|
58757
58878
|
environment: localEnvironment,
|
|
58758
|
-
calculateRegions:
|
|
58879
|
+
calculateRegions: result.payload.result[0].result.selectorRegions,
|
|
58880
|
+
dom: result.payload.result[0].result.dom
|
|
58759
58881
|
}
|
|
58760
58882
|
] : renderEnvironments.map((environment, index) => {
|
|
58761
|
-
var _a2;
|
|
58762
58883
|
if (result.payload.result[index].error) {
|
|
58763
58884
|
throw new Error(`There was a problem in taking screenshot for environment ${JSON.stringify(environment)}. The provided error message was "${result.payload.result[index].error.message}" and had a stack trace of "${result.payload.result[index].error.stack}"`);
|
|
58764
58885
|
}
|
|
58765
58886
|
return {
|
|
58766
58887
|
image: result.payload.result[index].result.screenshotUrl,
|
|
58767
|
-
calculateRegions:
|
|
58888
|
+
calculateRegions: result.payload.result[index].result.selectorRegions,
|
|
58889
|
+
dom: result.payload.result[index].result.dom,
|
|
58768
58890
|
environment
|
|
58769
58891
|
};
|
|
58770
58892
|
});
|
|
58771
58893
|
} else {
|
|
58772
|
-
screenshots = localEnvironment ? [
|
|
58773
|
-
|
|
58894
|
+
screenshots = localEnvironment ? [
|
|
58895
|
+
{
|
|
58896
|
+
image: result.payload.result.screenshotUrl,
|
|
58897
|
+
environment: localEnvironment,
|
|
58898
|
+
dom: result.payload.result.dom
|
|
58899
|
+
}
|
|
58900
|
+
] : renderEnvironments.map((environment, index) => {
|
|
58901
|
+
return {
|
|
58902
|
+
image: result.payload[index].result.screenshotUrl,
|
|
58903
|
+
dom: result.payload[index].result.dom,
|
|
58904
|
+
environment
|
|
58905
|
+
};
|
|
58774
58906
|
});
|
|
58775
58907
|
}
|
|
58776
58908
|
logger.log('Request "takeScreenshots" finished successfully with body', screenshots);
|
|
@@ -58920,6 +59052,10 @@ var require_types7 = __commonJS({
|
|
|
58920
59052
|
init_buffer();
|
|
58921
59053
|
init_setInterval();
|
|
58922
59054
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59055
|
+
exports.DomResult = void 0;
|
|
59056
|
+
var DomResult = class {
|
|
59057
|
+
};
|
|
59058
|
+
exports.DomResult = DomResult;
|
|
58923
59059
|
}
|
|
58924
59060
|
});
|
|
58925
59061
|
|
|
@@ -59834,6 +59970,9 @@ var require_check2 = __commonJS({
|
|
|
59834
59970
|
}
|
|
59835
59971
|
});
|
|
59836
59972
|
const calculate = elementReferences.calculate;
|
|
59973
|
+
if (typeof settings.waitBeforeCapture === "function") {
|
|
59974
|
+
throw new Error("providing functions to waitBeforeCapture is not supported in NML - please use a number instead");
|
|
59975
|
+
}
|
|
59837
59976
|
const screenshots = await nmlClient.takeScreenshots({
|
|
59838
59977
|
settings: {
|
|
59839
59978
|
environments,
|
|
@@ -59848,11 +59987,13 @@ var require_check2 = __commonJS({
|
|
|
59848
59987
|
name: settings.name,
|
|
59849
59988
|
region: elementReferences.target,
|
|
59850
59989
|
selectorsToFindRegionsFor: calculate.map(({ name }) => name),
|
|
59851
|
-
scrollRootElement: elementReferences.scrolling
|
|
59990
|
+
scrollRootElement: elementReferences.scrolling,
|
|
59991
|
+
sendDom: settings.sendDom
|
|
59852
59992
|
},
|
|
59853
59993
|
logger
|
|
59854
59994
|
});
|
|
59855
59995
|
return screenshots.map(({ calculateRegions, ...baseTarget }) => {
|
|
59996
|
+
var _a, _b;
|
|
59856
59997
|
const aggregateCalculatedRegions = [];
|
|
59857
59998
|
calculate.forEach(({ reference }, index) => {
|
|
59858
59999
|
const regions = calculateRegions === null || calculateRegions === void 0 ? void 0 : calculateRegions[index];
|
|
@@ -59862,8 +60003,11 @@ var require_check2 = __commonJS({
|
|
|
59862
60003
|
logger.log(`Regions "${reference}" was not found in the screenshot`);
|
|
59863
60004
|
}
|
|
59864
60005
|
});
|
|
60006
|
+
if ((_a = baseTarget.dom) === null || _a === void 0 ? void 0 : _a.error) {
|
|
60007
|
+
logger.warn("could not fetch DOM: " + baseTarget.dom.error);
|
|
60008
|
+
}
|
|
59865
60009
|
return {
|
|
59866
|
-
baseTarget: { ...baseTarget, isTransformed: true },
|
|
60010
|
+
baseTarget: { ...baseTarget, dom: (_b = baseTarget.dom) === null || _b === void 0 ? void 0 : _b.url, isTransformed: true },
|
|
59867
60011
|
baseSetting: getBaseCheckSettings({
|
|
59868
60012
|
calculatedRegions: aggregateCalculatedRegions
|
|
59869
60013
|
}),
|
|
@@ -60015,6 +60159,9 @@ var require_check_and_close2 = __commonJS({
|
|
|
60015
60159
|
settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
|
|
60016
60160
|
logger
|
|
60017
60161
|
});
|
|
60162
|
+
if (typeof settings.waitBeforeCapture === "function") {
|
|
60163
|
+
throw new Error("providing functions to waitBeforeCapture is not supported in NML - please use a number instead");
|
|
60164
|
+
}
|
|
60018
60165
|
const screenshots = await nmlClient.takeScreenshots({
|
|
60019
60166
|
settings: {
|
|
60020
60167
|
environments: uniqueEnvironments,
|
|
@@ -60026,13 +60173,18 @@ var require_check_and_close2 = __commonJS({
|
|
|
60026
60173
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
60027
60174
|
waitBetweenStitches: settings.waitBetweenStitches,
|
|
60028
60175
|
lazyLoad: settings.lazyLoad,
|
|
60029
|
-
name: settings.name
|
|
60176
|
+
name: settings.name,
|
|
60177
|
+
sendDom: settings.sendDom
|
|
60030
60178
|
},
|
|
60031
60179
|
logger
|
|
60032
60180
|
});
|
|
60033
60181
|
screenshots.forEach(({ environment, ...baseTarget }) => {
|
|
60182
|
+
var _a2, _b2;
|
|
60034
60183
|
exactEnvironments.push(environment);
|
|
60035
|
-
|
|
60184
|
+
if ((_a2 = baseTarget.dom) === null || _a2 === void 0 ? void 0 : _a2.error) {
|
|
60185
|
+
logger.warn("could not fetch DOM: " + baseTarget.dom.error);
|
|
60186
|
+
}
|
|
60187
|
+
baseTargets.push({ ...baseTarget, dom: (_b2 = baseTarget.dom) === null || _b2 === void 0 ? void 0 : _b2.url, isTransformed: true });
|
|
60036
60188
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions: [] }));
|
|
60037
60189
|
});
|
|
60038
60190
|
}
|
|
@@ -65376,7 +65528,7 @@ var require_processPagePollCjs = __commonJS({
|
|
|
65376
65528
|
} catch {
|
|
65377
65529
|
return false;
|
|
65378
65530
|
}
|
|
65379
|
-
}, od = Vh, id = gh, ad = /* @__PURE__ */ new Set(["date", "datetime-local", "email", "month", "number", "password", "search", "tel", "text", "time", "url", "week"]), sd = /^on[a-z]+$/;
|
|
65531
|
+
}, od = Vh, id = gh, ad = /* @__PURE__ */ new Set(["date", "datetime-local", "email", "month", "number", "password", "search", "tel", "text", "time", "url", "week", "range"]), sd = /^on[a-z]+$/;
|
|
65380
65532
|
function ld({ attributes: e4 = {} }) {
|
|
65381
65533
|
return Object.keys(e4).filter((t4) => e4[t4] && e4[t4].name);
|
|
65382
65534
|
}
|
|
@@ -67055,7 +67207,7 @@ creating temp style for access.`), r2 = Sf(e4);
|
|
|
67055
67207
|
function R2(e5) {
|
|
67056
67208
|
return t5.defaultView && t5.defaultView.frameElement && t5.defaultView.frameElement.getAttribute(e5);
|
|
67057
67209
|
}
|
|
67058
|
-
}(t4).then((e4) => (h2("processPage end"), e4.scriptVersion = "4.11.
|
|
67210
|
+
}(t4).then((e4) => (h2("processPage end"), e4.scriptVersion = "4.11.17", e4));
|
|
67059
67211
|
};
|
|
67060
67212
|
window[cg] = window[cg] || {};
|
|
67061
67213
|
const dg = lg(hg, window[cg], ug);
|
|
@@ -67633,8 +67785,8 @@ var require_take_dom_snapshots = __commonJS({
|
|
|
67633
67785
|
await ((_a2 = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _a2 === void 0 ? void 0 : _a2.call(hooks));
|
|
67634
67786
|
if (utils34.types.isNumber(settings.waitBeforeCapture)) {
|
|
67635
67787
|
await utils34.general.sleep(settings.waitBeforeCapture);
|
|
67636
|
-
} else {
|
|
67637
|
-
await ((_b2 =
|
|
67788
|
+
} else if (settings.waitBeforeCapture) {
|
|
67789
|
+
await ((_b2 = driver.executeUserFunction) === null || _b2 === void 0 ? void 0 : _b2.call(driver, settings.waitBeforeCapture));
|
|
67638
67790
|
}
|
|
67639
67791
|
}
|
|
67640
67792
|
function calculateBreakpoint({ breakpoints, value }) {
|
|
@@ -67826,6 +67978,52 @@ var require_to_generated_selectors = __commonJS({
|
|
|
67826
67978
|
}
|
|
67827
67979
|
});
|
|
67828
67980
|
|
|
67981
|
+
// ../core/dist/ufg/utils/filterStaleElements.js
|
|
67982
|
+
var require_filterStaleElements = __commonJS({
|
|
67983
|
+
"../core/dist/ufg/utils/filterStaleElements.js"(exports) {
|
|
67984
|
+
"use strict";
|
|
67985
|
+
init_process();
|
|
67986
|
+
init_setImmediate();
|
|
67987
|
+
init_buffer();
|
|
67988
|
+
init_setInterval();
|
|
67989
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67990
|
+
exports.removeStaleElementsFromDomSnapshotsSettings = exports.filterStaleElements = exports.isStale = void 0;
|
|
67991
|
+
async function isStale({ context, element }) {
|
|
67992
|
+
try {
|
|
67993
|
+
await context.execute("return arguments[0]", element);
|
|
67994
|
+
} catch {
|
|
67995
|
+
return true;
|
|
67996
|
+
}
|
|
67997
|
+
return false;
|
|
67998
|
+
}
|
|
67999
|
+
exports.isStale = isStale;
|
|
68000
|
+
async function filterStaleElements({ context, elementReferences }) {
|
|
68001
|
+
if (!elementReferences)
|
|
68002
|
+
return [];
|
|
68003
|
+
const validElements = [];
|
|
68004
|
+
for (const element of elementReferences) {
|
|
68005
|
+
if (!await isStale({ context, element })) {
|
|
68006
|
+
validElements.push(element);
|
|
68007
|
+
}
|
|
68008
|
+
}
|
|
68009
|
+
return validElements;
|
|
68010
|
+
}
|
|
68011
|
+
exports.filterStaleElements = filterStaleElements;
|
|
68012
|
+
async function removeStaleElementsFromDomSnapshotsSettings({ context, settings, targetElement }) {
|
|
68013
|
+
if (await isStale({ context, element: targetElement })) {
|
|
68014
|
+
throw new Error("Target element is stale - please make sure the element is not detached from the DOM tree. Failed to recover from stale element");
|
|
68015
|
+
} else {
|
|
68016
|
+
settings.elementReferences = await filterStaleElements({
|
|
68017
|
+
context,
|
|
68018
|
+
elementReferences: settings.elementReferences
|
|
68019
|
+
});
|
|
68020
|
+
}
|
|
68021
|
+
return settings;
|
|
68022
|
+
}
|
|
68023
|
+
exports.removeStaleElementsFromDomSnapshotsSettings = removeStaleElementsFromDomSnapshotsSettings;
|
|
68024
|
+
}
|
|
68025
|
+
});
|
|
68026
|
+
|
|
67829
68027
|
// ../core/dist/ufg/take-snapshots.js
|
|
67830
68028
|
var require_take_snapshots2 = __commonJS({
|
|
67831
68029
|
"../core/dist/ufg/take-snapshots.js"(exports) {
|
|
@@ -67841,9 +68039,10 @@ var require_take_snapshots2 = __commonJS({
|
|
|
67841
68039
|
var to_safe_check_settings_1 = require_to_safe_check_settings();
|
|
67842
68040
|
var to_generated_selectors_1 = require_to_generated_selectors();
|
|
67843
68041
|
var abort_error_1 = require_abort_error();
|
|
68042
|
+
var filterStaleElements_1 = require_filterStaleElements();
|
|
67844
68043
|
function makeTakeSnapshots({ core, spec, signal, logger: mainLogger }) {
|
|
67845
68044
|
return async function takeSnapshots({ driver, settings = {}, account, logger = mainLogger }) {
|
|
67846
|
-
var _a;
|
|
68045
|
+
var _a, _b;
|
|
67847
68046
|
logger = logger.extend(mainLogger);
|
|
67848
68047
|
logger.log('Command "takeSnapshots" is called with settings', settings);
|
|
67849
68048
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
@@ -67876,7 +68075,7 @@ var require_take_snapshots2 = __commonJS({
|
|
|
67876
68075
|
},
|
|
67877
68076
|
logger
|
|
67878
68077
|
});
|
|
67879
|
-
|
|
68078
|
+
const takeSnapshotsSettings = {
|
|
67880
68079
|
driver,
|
|
67881
68080
|
settings: {
|
|
67882
68081
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
@@ -67892,7 +68091,23 @@ var require_take_snapshots2 = __commonJS({
|
|
|
67892
68091
|
getIOSDevices: ufgClient.getIOSDevices
|
|
67893
68092
|
},
|
|
67894
68093
|
logger
|
|
67895
|
-
}
|
|
68094
|
+
};
|
|
68095
|
+
try {
|
|
68096
|
+
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)(takeSnapshotsSettings);
|
|
68097
|
+
} catch (err) {
|
|
68098
|
+
if ((_b = err === null || err === void 0 ? void 0 : err.message) === null || _b === void 0 ? void 0 : _b.includes("stale element")) {
|
|
68099
|
+
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({
|
|
68100
|
+
...takeSnapshotsSettings,
|
|
68101
|
+
settings: await (0, filterStaleElements_1.removeStaleElementsFromDomSnapshotsSettings)({
|
|
68102
|
+
settings: takeSnapshotsSettings.settings,
|
|
68103
|
+
context: currentContext,
|
|
68104
|
+
targetElement: elementReferences.target
|
|
68105
|
+
})
|
|
68106
|
+
});
|
|
68107
|
+
} else {
|
|
68108
|
+
throw err;
|
|
68109
|
+
}
|
|
68110
|
+
}
|
|
67896
68111
|
} else {
|
|
67897
68112
|
const nmlClient = await core.getNMLClient({
|
|
67898
68113
|
driver,
|
|
@@ -68134,15 +68349,20 @@ var require_requests3 = __commonJS({
|
|
|
68134
68349
|
__setModuleDefault(result, mod);
|
|
68135
68350
|
return result;
|
|
68136
68351
|
};
|
|
68352
|
+
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
68353
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
68354
|
+
};
|
|
68137
68355
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68138
|
-
exports.makeUFGRequests = void 0;
|
|
68356
|
+
exports.toServerEnvironment = exports.makeUFGRequests = void 0;
|
|
68139
68357
|
var logger_1 = require_browser6();
|
|
68140
68358
|
var req_ufg_1 = require_req_ufg();
|
|
68141
68359
|
var to_render_result_1 = require_to_render_result();
|
|
68142
68360
|
var utils34 = __importStar(require_browser3());
|
|
68361
|
+
var throat_1 = __importDefault(require_throat());
|
|
68143
68362
|
function makeUFGRequests({ settings, logger }) {
|
|
68144
68363
|
const mainLogger = (0, logger_1.makeLogger)({ logger, format: { label: "ufg-requests" } });
|
|
68145
68364
|
const req2 = (0, req_ufg_1.makeReqUFG)({ settings, logger: mainLogger });
|
|
68365
|
+
const callRenderThrottled = (0, throat_1.default)(5, callRender);
|
|
68146
68366
|
const defaultAgentId = settings.agentId;
|
|
68147
68367
|
const getChromeEmulationDevicesWithCache = utils34.general.cachify(getChromeEmulationDevices);
|
|
68148
68368
|
const getIOSDevicesWithCache = utils34.general.cachify(getIOSDevices);
|
|
@@ -68157,64 +68377,72 @@ var require_requests3 = __commonJS({
|
|
|
68157
68377
|
getIOSDevices: getIOSDevicesWithCache,
|
|
68158
68378
|
getAndroidDevices: getAndroidDevicesWithCache
|
|
68159
68379
|
};
|
|
68380
|
+
async function callRender(chunk) {
|
|
68381
|
+
const res = await req2("./render", {
|
|
68382
|
+
name: "startRenders",
|
|
68383
|
+
method: "POST",
|
|
68384
|
+
body: chunk,
|
|
68385
|
+
expected: 200,
|
|
68386
|
+
logger
|
|
68387
|
+
});
|
|
68388
|
+
return res;
|
|
68389
|
+
}
|
|
68160
68390
|
async function startRenders({ renders, logger: logger2 = mainLogger }) {
|
|
68161
68391
|
logger2 = logger2.extend(mainLogger, { tags: [`start-render-request-${utils34.general.shortid()}`] });
|
|
68162
68392
|
logger2.log('Request "startRenders" called for requests', renders);
|
|
68163
|
-
const
|
|
68164
|
-
|
|
68165
|
-
|
|
68166
|
-
|
|
68167
|
-
|
|
68168
|
-
|
|
68169
|
-
|
|
68170
|
-
|
|
68171
|
-
|
|
68172
|
-
|
|
68173
|
-
|
|
68174
|
-
|
|
68175
|
-
|
|
68176
|
-
|
|
68177
|
-
|
|
68178
|
-
|
|
68179
|
-
|
|
68180
|
-
|
|
68181
|
-
|
|
68182
|
-
|
|
68183
|
-
|
|
68184
|
-
|
|
68185
|
-
|
|
68186
|
-
|
|
68187
|
-
|
|
68188
|
-
|
|
68189
|
-
|
|
68190
|
-
if (utils34.types.has(settings2.region, ["x", "y", "width", "height"])) {
|
|
68191
|
-
renderOptions.renderInfo.target = "region";
|
|
68192
|
-
renderOptions.renderInfo.region = settings2.region;
|
|
68193
|
-
} else {
|
|
68194
|
-
renderOptions.renderInfo.target = settings2.fully ? "full-selector" : "selector";
|
|
68195
|
-
renderOptions.renderInfo.selector = toServerSelector(settings2.region);
|
|
68196
|
-
}
|
|
68393
|
+
const rendersOptions = renders.map(({ target, settings: settings2 }) => {
|
|
68394
|
+
var _a;
|
|
68395
|
+
const renderOptions = {
|
|
68396
|
+
url: target.source,
|
|
68397
|
+
snapshot: target.snapshot,
|
|
68398
|
+
resources: target.resources,
|
|
68399
|
+
selectorsToFindRegionsFor: (_a = settings2.selectorsToCalculate) === null || _a === void 0 ? void 0 : _a.map(toServerSelector),
|
|
68400
|
+
options: settings2.ufgOptions,
|
|
68401
|
+
scriptHooks: settings2.hooks,
|
|
68402
|
+
agentId: defaultAgentId,
|
|
68403
|
+
prefixRenderId: settings2.prefixRenderId,
|
|
68404
|
+
webhook: settings2.uploadUrl,
|
|
68405
|
+
stitchingService: settings2.stitchingServiceUrl,
|
|
68406
|
+
sendDom: settings2.sendDom,
|
|
68407
|
+
includeFullPageSize: settings2.includeFullPageSize,
|
|
68408
|
+
enableMultipleResultsPerSelector: true,
|
|
68409
|
+
...toServerEnvironment(settings2.environment)
|
|
68410
|
+
};
|
|
68411
|
+
if (utils34.types.has(settings2.environment, "type") && settings2.environment.type === "native") {
|
|
68412
|
+
renderOptions.renderInfo.vhsType = target.vhsType;
|
|
68413
|
+
renderOptions.renderInfo.vhsCompatibilityParams = target.vhsCompatibilityParams;
|
|
68414
|
+
renderOptions.renderInfo.stitchMode = settings2.stitchMode;
|
|
68415
|
+
}
|
|
68416
|
+
if (settings2.region) {
|
|
68417
|
+
if (utils34.types.has(settings2.region, ["x", "y", "width", "height"])) {
|
|
68418
|
+
renderOptions.renderInfo.target = "region";
|
|
68419
|
+
renderOptions.renderInfo.region = settings2.region;
|
|
68197
68420
|
} else {
|
|
68198
|
-
renderOptions.renderInfo.target = settings2.fully ? "full-
|
|
68199
|
-
|
|
68200
|
-
renderOptions.renderInfo.selector = settings2.scrollRootElement;
|
|
68201
|
-
}
|
|
68421
|
+
renderOptions.renderInfo.target = settings2.fully ? "full-selector" : "selector";
|
|
68422
|
+
renderOptions.renderInfo.selector = toServerSelector(settings2.region);
|
|
68202
68423
|
}
|
|
68203
|
-
|
|
68204
|
-
|
|
68205
|
-
|
|
68206
|
-
|
|
68424
|
+
} else {
|
|
68425
|
+
renderOptions.renderInfo.target = settings2.fully ? "full-page" : "viewport";
|
|
68426
|
+
if (utils34.types.has(settings2.environment, "type") && settings2.environment.type === "native") {
|
|
68427
|
+
renderOptions.renderInfo.selector = settings2.scrollRootElement;
|
|
68428
|
+
}
|
|
68429
|
+
}
|
|
68430
|
+
return renderOptions;
|
|
68207
68431
|
});
|
|
68208
|
-
const
|
|
68209
|
-
|
|
68210
|
-
|
|
68211
|
-
|
|
68212
|
-
|
|
68213
|
-
|
|
68214
|
-
|
|
68215
|
-
|
|
68216
|
-
|
|
68217
|
-
|
|
68432
|
+
const chunks = [...Array(Math.ceil(rendersOptions.length / 50))].map((_) => rendersOptions.splice(0, 50));
|
|
68433
|
+
const chunksResponse = await Promise.all(chunks.map(async (chunk) => {
|
|
68434
|
+
const response2 = await callRenderThrottled(chunk);
|
|
68435
|
+
return response2.json();
|
|
68436
|
+
}));
|
|
68437
|
+
const response = chunksResponse.flat();
|
|
68438
|
+
const results = response.map((result) => {
|
|
68439
|
+
return {
|
|
68440
|
+
jobId: result.jobId,
|
|
68441
|
+
renderId: result.renderId,
|
|
68442
|
+
status: result.renderStatus,
|
|
68443
|
+
needMoreResources: result.needMoreResources,
|
|
68444
|
+
needMoreDom: result.needMoreDom
|
|
68445
|
+
};
|
|
68218
68446
|
});
|
|
68219
68447
|
logger2.log('Request "startRenders" finished successfully with body', results);
|
|
68220
68448
|
return results;
|
|
@@ -68287,32 +68515,35 @@ var require_requests3 = __commonJS({
|
|
|
68287
68515
|
async function getActualEnvironments({ settings: settings2, logger: logger2 = mainLogger }) {
|
|
68288
68516
|
logger2 = logger2.extend(mainLogger, { tags: [`get-actual-environments-${utils34.general.shortid()}`] });
|
|
68289
68517
|
logger2.log('Request "getActualEnvironments" called for with settings', settings2);
|
|
68290
|
-
const
|
|
68291
|
-
|
|
68292
|
-
|
|
68293
|
-
|
|
68294
|
-
|
|
68295
|
-
|
|
68296
|
-
|
|
68297
|
-
|
|
68298
|
-
|
|
68299
|
-
|
|
68300
|
-
|
|
68301
|
-
|
|
68302
|
-
|
|
68303
|
-
|
|
68304
|
-
|
|
68305
|
-
|
|
68306
|
-
const results = await response.json().then((results2) => {
|
|
68307
|
-
return results2.map((result, index) => {
|
|
68308
|
-
var _a;
|
|
68309
|
-
return {
|
|
68310
|
-
requested: (_a = settings2[index]) === null || _a === void 0 ? void 0 : _a.environment,
|
|
68311
|
-
environmentId: utils34.general.guid(),
|
|
68312
|
-
rawEnvironment: result.eyesEnvironment
|
|
68313
|
-
};
|
|
68518
|
+
const results = await utils34.general.dedupAndMap(settings2, async (settings3) => {
|
|
68519
|
+
const response = await req2("./job-info", {
|
|
68520
|
+
name: "getActualEnvironments",
|
|
68521
|
+
method: "POST",
|
|
68522
|
+
body: settings3.map((settings4) => {
|
|
68523
|
+
const renderOptions = {
|
|
68524
|
+
agentId: defaultAgentId,
|
|
68525
|
+
webhook: "",
|
|
68526
|
+
stitchingService: "",
|
|
68527
|
+
...toServerEnvironment(settings4.environment)
|
|
68528
|
+
};
|
|
68529
|
+
renderOptions.renderInfo.target = "viewport";
|
|
68530
|
+
return renderOptions;
|
|
68531
|
+
}),
|
|
68532
|
+
expected: 200,
|
|
68533
|
+
logger: logger2
|
|
68314
68534
|
});
|
|
68315
|
-
|
|
68535
|
+
const results2 = await response.json().then((results3) => {
|
|
68536
|
+
return results3.map((result, index) => {
|
|
68537
|
+
var _a;
|
|
68538
|
+
return {
|
|
68539
|
+
requested: (_a = settings3[index]) === null || _a === void 0 ? void 0 : _a.environment,
|
|
68540
|
+
environmentId: utils34.general.guid(),
|
|
68541
|
+
rawEnvironment: result.eyesEnvironment
|
|
68542
|
+
};
|
|
68543
|
+
});
|
|
68544
|
+
});
|
|
68545
|
+
return results2;
|
|
68546
|
+
}, utils34.general.deepEqual);
|
|
68316
68547
|
logger2.log('Request "getActualEnvironments" finished successfully with body', results);
|
|
68317
68548
|
return results;
|
|
68318
68549
|
}
|
|
@@ -68345,17 +68576,23 @@ var require_requests3 = __commonJS({
|
|
|
68345
68576
|
function toServerEnvironment(environment) {
|
|
68346
68577
|
var _a, _b;
|
|
68347
68578
|
if (utils34.types.has(environment, ["width", "height"])) {
|
|
68579
|
+
if (!environment.name) {
|
|
68580
|
+
throw new Error("Expected browser name to be defined when width and height are defined");
|
|
68581
|
+
}
|
|
68348
68582
|
return {
|
|
68349
68583
|
platform: { name: "linux", type: "web" },
|
|
68350
68584
|
browser: {
|
|
68351
|
-
name: environment.name
|
|
68585
|
+
name: replaceVersionsBack(environment.name)
|
|
68352
68586
|
},
|
|
68353
68587
|
renderInfo: { width: environment.width, height: environment.height }
|
|
68354
68588
|
};
|
|
68355
68589
|
} else if (utils34.types.has(environment, "chromeEmulationInfo")) {
|
|
68590
|
+
if (environment.name && !environment.name.includes("chrome")) {
|
|
68591
|
+
throw new Error("Expected browser name to be undefined or chrome when chromeEmulationInfo is defined");
|
|
68592
|
+
}
|
|
68356
68593
|
return {
|
|
68357
68594
|
platform: { name: "linux", type: "web" },
|
|
68358
|
-
browser: { name: "chrome" },
|
|
68595
|
+
browser: { name: replaceVersionsBack((_a = environment.name) !== null && _a !== void 0 ? _a : "chrome") },
|
|
68359
68596
|
renderInfo: {
|
|
68360
68597
|
emulationInfo: {
|
|
68361
68598
|
deviceName: environment.chromeEmulationInfo.deviceName,
|
|
@@ -68365,7 +68602,7 @@ var require_requests3 = __commonJS({
|
|
|
68365
68602
|
};
|
|
68366
68603
|
} else if (utils34.types.has(environment, "androidDeviceInfo")) {
|
|
68367
68604
|
return {
|
|
68368
|
-
platform: { name: "android", type: (
|
|
68605
|
+
platform: { name: "android", type: (_b = environment.type) !== null && _b !== void 0 ? _b : "native" },
|
|
68369
68606
|
browser: environment.type === "web" ? { name: "chrome" } : void 0,
|
|
68370
68607
|
renderInfo: {
|
|
68371
68608
|
androidDeviceInfo: {
|
|
@@ -68377,8 +68614,8 @@ var require_requests3 = __commonJS({
|
|
|
68377
68614
|
};
|
|
68378
68615
|
} else if (utils34.types.has(environment, "iosDeviceInfo")) {
|
|
68379
68616
|
return {
|
|
68380
|
-
platform: { name: "ios", type:
|
|
68381
|
-
browser:
|
|
68617
|
+
platform: { name: "ios", type: "web" },
|
|
68618
|
+
browser: { name: "safari" },
|
|
68382
68619
|
renderInfo: {
|
|
68383
68620
|
iosDeviceInfo: {
|
|
68384
68621
|
name: environment.iosDeviceInfo.deviceName,
|
|
@@ -68388,7 +68625,11 @@ var require_requests3 = __commonJS({
|
|
|
68388
68625
|
}
|
|
68389
68626
|
};
|
|
68390
68627
|
}
|
|
68628
|
+
function replaceVersionsBack(name) {
|
|
68629
|
+
return name.replace(/(one|two)-versions?-back$/, (_, num) => num === "one" ? "1" : "2");
|
|
68630
|
+
}
|
|
68391
68631
|
}
|
|
68632
|
+
exports.toServerEnvironment = toServerEnvironment;
|
|
68392
68633
|
function toServerSelector(selector) {
|
|
68393
68634
|
var _a;
|
|
68394
68635
|
if (utils34.types.isString(selector))
|
|
@@ -68682,7 +68923,6 @@ var require_create_render_target = __commonJS({
|
|
|
68682
68923
|
processResources({
|
|
68683
68924
|
resources: Object.fromEntries([
|
|
68684
68925
|
...((_a = snapshot.resourceUrls) !== null && _a !== void 0 ? _a : []).map((url) => {
|
|
68685
|
-
url = replaceResourceUrlIfNeeded(url, replaceResourceUrlsSettings);
|
|
68686
68926
|
return [url, (0, resource_1.makeResource)({ url, environment: settings === null || settings === void 0 ? void 0 : settings.environment })];
|
|
68687
68927
|
}),
|
|
68688
68928
|
...Object.entries((_b = snapshot.resourceContents) !== null && _b !== void 0 ? _b : {}).map(([url, resource]) => {
|
|
@@ -68702,7 +68942,8 @@ var require_create_render_target = __commonJS({
|
|
|
68702
68942
|
]),
|
|
68703
68943
|
settings: {
|
|
68704
68944
|
...settings,
|
|
68705
|
-
headers: { ...settings === null || settings === void 0 ? void 0 : settings.headers, Referer: utils34.types.has(snapshot, "url") ? snapshot.url : void 0 }
|
|
68945
|
+
headers: { ...settings === null || settings === void 0 ? void 0 : settings.headers, Referer: utils34.types.has(snapshot, "url") ? snapshot.url : void 0 },
|
|
68946
|
+
getUrlForUrlResource: replaceResourceUrlsSettings ? (url) => replaceResourceUrlIfNeeded(url, replaceResourceUrlsSettings) : void 0
|
|
68706
68947
|
},
|
|
68707
68948
|
logger
|
|
68708
68949
|
}),
|
|
@@ -68714,7 +68955,12 @@ var require_create_render_target = __commonJS({
|
|
|
68714
68955
|
const frameUrl = replaceResourceUrlIfNeeded(snapshot.frames[index].url, replaceResourceUrlsSettings);
|
|
68715
68956
|
return Object.assign(mapping, { [frameUrl]: resources.mapping[frameUrl] });
|
|
68716
68957
|
}, {});
|
|
68717
|
-
const
|
|
68958
|
+
const snapshotResourcesMapping = Object.keys(snapshotResources.mapping).reduce((mapping, resourceUrl) => {
|
|
68959
|
+
const url = replaceResourceUrlIfNeeded(resourceUrl, replaceResourceUrlsSettings);
|
|
68960
|
+
mapping[url] = snapshotResources.mapping[resourceUrl];
|
|
68961
|
+
return mapping;
|
|
68962
|
+
}, {});
|
|
68963
|
+
const resourceMappingWithoutDom = { ...snapshotResourcesMapping, ...frameDomResourceMapping };
|
|
68718
68964
|
if (utils34.types.has(snapshot, "url"))
|
|
68719
68965
|
snapshot.url = replaceResourceUrlIfNeeded(snapshot.url, replaceResourceUrlsSettings);
|
|
68720
68966
|
const domResource = utils34.types.has(snapshot, "cdt") ? {
|
|
@@ -85828,6 +86074,9 @@ var require_process_resources = __commonJS({
|
|
|
85828
86074
|
async function doProcessUrlResourceWithDependencies(resource2) {
|
|
85829
86075
|
const processedResource = await processUrlResource({ resource: resource2, settings, logger });
|
|
85830
86076
|
if (processedResource) {
|
|
86077
|
+
if (settings === null || settings === void 0 ? void 0 : settings.getUrlForUrlResource) {
|
|
86078
|
+
resource2.url = settings.getUrlForUrlResource(resource2.url);
|
|
86079
|
+
}
|
|
85831
86080
|
processedResourcesWithDependencies[resource2.url] = processedResource;
|
|
85832
86081
|
if (processedResource.dependencies) {
|
|
85833
86082
|
const dependencyResources = processedResource.dependencies.flatMap((dependencyUrl) => {
|
|
@@ -88635,6 +88884,27 @@ var require_types9 = __commonJS({
|
|
|
88635
88884
|
init_buffer();
|
|
88636
88885
|
init_setInterval();
|
|
88637
88886
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
88887
|
+
exports.BrowserNameEnum = void 0;
|
|
88888
|
+
var BrowserNameEnum;
|
|
88889
|
+
(function(BrowserNameEnum2) {
|
|
88890
|
+
BrowserNameEnum2["CHROME"] = "chrome";
|
|
88891
|
+
BrowserNameEnum2["CHROME_ONE_VERSION_BACK"] = "chrome-one-version-back";
|
|
88892
|
+
BrowserNameEnum2["CHROME_TWO_VERSIONS_BACK"] = "chrome-two-versions-back";
|
|
88893
|
+
BrowserNameEnum2["FIREFOX"] = "firefox";
|
|
88894
|
+
BrowserNameEnum2["FIREFOX_ONE_VERSION_BACK"] = "firefox-one-version-back";
|
|
88895
|
+
BrowserNameEnum2["FIREFOX_TWO_VERSIONS_BACK"] = "firefox-two-versions-back";
|
|
88896
|
+
BrowserNameEnum2["IE_11"] = "ie";
|
|
88897
|
+
BrowserNameEnum2["IE_10"] = "ie10";
|
|
88898
|
+
BrowserNameEnum2["EDGE"] = "edge";
|
|
88899
|
+
BrowserNameEnum2["EDGE_CHROMIUM"] = "edgechromium";
|
|
88900
|
+
BrowserNameEnum2["EDGE_LEGACY"] = "edgelegacy";
|
|
88901
|
+
BrowserNameEnum2["EDGE_CHROMIUM_ONE_VERSION_BACK"] = "edgechromium-one-version-back";
|
|
88902
|
+
BrowserNameEnum2["EDGE_CHROMIUM_TWO_VERSIONS_BACK"] = "edgechromium-two-versions-back";
|
|
88903
|
+
BrowserNameEnum2["SAFARI"] = "safari";
|
|
88904
|
+
BrowserNameEnum2["SAFARI_EARLY_ACCESS"] = "safari-earlyaccess";
|
|
88905
|
+
BrowserNameEnum2["SAFARI_ONE_VERSION_BACK"] = "safari-one-version-back";
|
|
88906
|
+
BrowserNameEnum2["SAFARI_TWO_VERSIONS_BACK"] = "safari-two-versions-back";
|
|
88907
|
+
})(BrowserNameEnum || (exports.BrowserNameEnum = BrowserNameEnum = {}));
|
|
88638
88908
|
}
|
|
88639
88909
|
});
|
|
88640
88910
|
|
|
@@ -89320,6 +89590,108 @@ var require_extract_default_environment = __commonJS({
|
|
|
89320
89590
|
}
|
|
89321
89591
|
});
|
|
89322
89592
|
|
|
89593
|
+
// ../core/dist/ufg/utils/verify-environment-info.js
|
|
89594
|
+
var require_verify_environment_info = __commonJS({
|
|
89595
|
+
"../core/dist/ufg/utils/verify-environment-info.js"(exports) {
|
|
89596
|
+
"use strict";
|
|
89597
|
+
init_process();
|
|
89598
|
+
init_setImmediate();
|
|
89599
|
+
init_buffer();
|
|
89600
|
+
init_setInterval();
|
|
89601
|
+
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
89602
|
+
if (k2 === void 0)
|
|
89603
|
+
k2 = k;
|
|
89604
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
89605
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
89606
|
+
desc = { enumerable: true, get: function() {
|
|
89607
|
+
return m[k];
|
|
89608
|
+
} };
|
|
89609
|
+
}
|
|
89610
|
+
Object.defineProperty(o, k2, desc);
|
|
89611
|
+
} : function(o, m, k, k2) {
|
|
89612
|
+
if (k2 === void 0)
|
|
89613
|
+
k2 = k;
|
|
89614
|
+
o[k2] = m[k];
|
|
89615
|
+
});
|
|
89616
|
+
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
|
89617
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
89618
|
+
} : function(o, v) {
|
|
89619
|
+
o["default"] = v;
|
|
89620
|
+
});
|
|
89621
|
+
var __importStar = exports && exports.__importStar || function(mod) {
|
|
89622
|
+
if (mod && mod.__esModule)
|
|
89623
|
+
return mod;
|
|
89624
|
+
var result = {};
|
|
89625
|
+
if (mod != null) {
|
|
89626
|
+
for (var k in mod)
|
|
89627
|
+
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
|
|
89628
|
+
__createBinding(result, mod, k);
|
|
89629
|
+
}
|
|
89630
|
+
__setModuleDefault(result, mod);
|
|
89631
|
+
return result;
|
|
89632
|
+
};
|
|
89633
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
89634
|
+
exports.verifyEnvironmentsInfo = void 0;
|
|
89635
|
+
var utils34 = __importStar(require_browser3());
|
|
89636
|
+
var ufg_client_1 = require_dist6();
|
|
89637
|
+
async function verifyEnvironmentsInfo({ environments, ufgClient }) {
|
|
89638
|
+
const invalid = [];
|
|
89639
|
+
await Promise.all(environments.map(async (environment) => {
|
|
89640
|
+
if (utils34.types.has(environment, ["width", "height"])) {
|
|
89641
|
+
const browserName = environment.name || "";
|
|
89642
|
+
if (!getAllBrowserNames().includes(browserName)) {
|
|
89643
|
+
invalid.push(browserName);
|
|
89644
|
+
}
|
|
89645
|
+
} else if (utils34.types.has(environment, "chromeEmulationInfo")) {
|
|
89646
|
+
const devices = await ufgClient.getChromeEmulationDevices();
|
|
89647
|
+
const deviceName = environment.chromeEmulationInfo.deviceName;
|
|
89648
|
+
if (!devices[deviceName]) {
|
|
89649
|
+
invalid.push(deviceName);
|
|
89650
|
+
}
|
|
89651
|
+
} else if (utils34.types.has(environment, "iosDeviceInfo")) {
|
|
89652
|
+
const devices = await ufgClient.getIOSDevices();
|
|
89653
|
+
const deviceName = environment.iosDeviceInfo.deviceName;
|
|
89654
|
+
if (!devices[deviceName]) {
|
|
89655
|
+
invalid.push(deviceName);
|
|
89656
|
+
}
|
|
89657
|
+
}
|
|
89658
|
+
}));
|
|
89659
|
+
if (invalid.length > 0) {
|
|
89660
|
+
throw new Error(`The specified UFG environment(s): ${invalid.map((item) => `"${item}"`).join(", ")} are either invalid or no longer supported.
|
|
89661
|
+
Refer to our current list of supported devices and browsers at: https://applitools.com/tutorials/concepts/test-execution/ultrafast-grid-devices-browsers
|
|
89662
|
+
If you continue to experience issues, ensure that your SDK is updated to the latest version.`);
|
|
89663
|
+
}
|
|
89664
|
+
}
|
|
89665
|
+
exports.verifyEnvironmentsInfo = verifyEnvironmentsInfo;
|
|
89666
|
+
function getAllBrowserNames() {
|
|
89667
|
+
return [
|
|
89668
|
+
...Object.values(ufg_client_1.BrowserNameEnum),
|
|
89669
|
+
"chrome-1",
|
|
89670
|
+
"firefox-1",
|
|
89671
|
+
"edgechromium-1",
|
|
89672
|
+
"safari-1",
|
|
89673
|
+
"chrome-2",
|
|
89674
|
+
"firefox-2",
|
|
89675
|
+
"edgechromium-2",
|
|
89676
|
+
"safari-2",
|
|
89677
|
+
"chrome-canary",
|
|
89678
|
+
"firefox-canary",
|
|
89679
|
+
"edgechromium-canary",
|
|
89680
|
+
"safari-canary",
|
|
89681
|
+
"chrome-one-versions-back",
|
|
89682
|
+
"firefox-one-versions-back",
|
|
89683
|
+
"edgechromium-one-versions-back",
|
|
89684
|
+
"safari-one-versions-back",
|
|
89685
|
+
"chrome-two-version-back",
|
|
89686
|
+
"firefox-two-version-back",
|
|
89687
|
+
"edgechromium-two-version-back",
|
|
89688
|
+
"safari-two-version-back",
|
|
89689
|
+
"ie11"
|
|
89690
|
+
];
|
|
89691
|
+
}
|
|
89692
|
+
}
|
|
89693
|
+
});
|
|
89694
|
+
|
|
89323
89695
|
// ../core/dist/ufg/open-eyes.js
|
|
89324
89696
|
var require_open_eyes3 = __commonJS({
|
|
89325
89697
|
"../core/dist/ufg/open-eyes.js"(exports) {
|
|
@@ -89370,11 +89742,12 @@ var require_open_eyes3 = __commonJS({
|
|
|
89370
89742
|
var abort_1 = require_abort2();
|
|
89371
89743
|
var get_results_1 = require_get_results2();
|
|
89372
89744
|
var extract_default_environment_1 = require_extract_default_environment();
|
|
89745
|
+
var verify_environment_info_1 = require_verify_environment_info();
|
|
89373
89746
|
var abort_controller_1 = (init_abort_controller(), __toCommonJS(abort_controller_exports));
|
|
89374
89747
|
var utils34 = __importStar(require_browser3());
|
|
89375
89748
|
function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
89376
89749
|
return async function openEyes({ target, settings, storage = /* @__PURE__ */ new Map(), logger = mainLogger }) {
|
|
89377
|
-
var _a, _b, _c;
|
|
89750
|
+
var _a, _b, _c, _d;
|
|
89378
89751
|
logger = logger.extend(mainLogger);
|
|
89379
89752
|
logger.log(`Command "openEyes" is called with ${target ? "default driver" : ""}`, ...settings ? ["and settings", settings] : [], storage.size > 0 ? "and default eyes storage" : "");
|
|
89380
89753
|
const driver = target && await (0, driver_1.makeDriver)({ spec, driver: target, logger });
|
|
@@ -89392,8 +89765,17 @@ var require_open_eyes3 = __commonJS({
|
|
|
89392
89765
|
const controller = new abort_controller_1.AbortController();
|
|
89393
89766
|
const { signal } = controller;
|
|
89394
89767
|
const account = await core.getAccountInfo({ settings, logger });
|
|
89768
|
+
const ufgClient = await core.getUFGClient({
|
|
89769
|
+
settings: {
|
|
89770
|
+
...account.ufgServer,
|
|
89771
|
+
eyesServerUrl: account.eyesServer.eyesServerUrl,
|
|
89772
|
+
apiKey: account.eyesServer.apiKey
|
|
89773
|
+
},
|
|
89774
|
+
logger
|
|
89775
|
+
});
|
|
89776
|
+
await (0, verify_environment_info_1.verifyEnvironmentsInfo)({ environments: (_d = settings.environments) !== null && _d !== void 0 ? _d : [], ufgClient });
|
|
89395
89777
|
return utils34.general.extend({}, (eyes) => {
|
|
89396
|
-
var _a2, _b2, _c2,
|
|
89778
|
+
var _a2, _b2, _c2, _d2;
|
|
89397
89779
|
return {
|
|
89398
89780
|
type: "ufg",
|
|
89399
89781
|
core,
|
|
@@ -89403,7 +89785,7 @@ var require_open_eyes3 = __commonJS({
|
|
|
89403
89785
|
batchBuildId: (_b2 = settings.batch) === null || _b2 === void 0 ? void 0 : _b2.buildId,
|
|
89404
89786
|
keepBatchOpen: settings.keepBatchOpen,
|
|
89405
89787
|
eyesServer: account.eyesServer,
|
|
89406
|
-
ufgServer: { ...account.ufgServer, ufgServerUrl: (_c2 = settings.ufgServerUrl) !== null && _c2 !== void 0 ? _c2 : (
|
|
89788
|
+
ufgServer: { ...account.ufgServer, ufgServerUrl: (_c2 = settings.ufgServerUrl) !== null && _c2 !== void 0 ? _c2 : (_d2 = account.ufgServer) === null || _d2 === void 0 ? void 0 : _d2.ufgServerUrl },
|
|
89407
89789
|
uploadUrl: account.uploadUrl,
|
|
89408
89790
|
stitchingServiceUrl: account.stitchingServiceUrl,
|
|
89409
89791
|
supportedEnvironmentsUrl: account.supportedEnvironmentsUrl,
|
|
@@ -89551,7 +89933,8 @@ var require_populate_eyes_server_settings = __commonJS({
|
|
|
89551
89933
|
var _a, _b, _c, _d, _e, _f;
|
|
89552
89934
|
(_a = settings.eyesServerUrl) !== null && _a !== void 0 ? _a : settings.eyesServerUrl = (_c = (_b = utils34.general.getEnvValue("EYES_SERVER_URL")) !== null && _b !== void 0 ? _b : utils34.general.getEnvValue("SERVER_URL")) !== null && _c !== void 0 ? _c : "https://eyesapi.applitools.com";
|
|
89553
89935
|
(_d = settings.apiKey) !== null && _d !== void 0 ? _d : settings.apiKey = utils34.general.getEnvValue("API_KEY");
|
|
89554
|
-
|
|
89936
|
+
const proxyUrl = utils34.general.getEnvValue("PROXY_URL");
|
|
89937
|
+
(_e = settings.proxy) !== null && _e !== void 0 ? _e : settings.proxy = proxyUrl ? { url: proxyUrl } : void 0;
|
|
89555
89938
|
(_f = settings.useDnsCache) !== null && _f !== void 0 ? _f : settings.useDnsCache = utils34.general.getEnvValue("USE_DNS_CACHE", "boolean");
|
|
89556
89939
|
return {
|
|
89557
89940
|
eyesServerUrl: settings.eyesServerUrl,
|
|
@@ -89969,7 +90352,7 @@ var require_check4 = __commonJS({
|
|
|
89969
90352
|
settings.overlap = { top: 10, bottom: 50, ...settings === null || settings === void 0 ? void 0 : settings.overlap };
|
|
89970
90353
|
(_e = settings.matchLevel) !== null && _e !== void 0 ? _e : settings.matchLevel = "Strict";
|
|
89971
90354
|
(_f = settings.ignoreCaret) !== null && _f !== void 0 ? _f : settings.ignoreCaret = true;
|
|
89972
|
-
(_g = settings.sendDom) !== null && _g !== void 0 ? _g : settings.sendDom = eyes.test.account.rcaEnabled || settings.matchLevel === "Layout" || settings.matchLevel === "Dynamic" || settings.enablePatterns || settings.useDom || !utils34.types.isEmpty(settings.dynamicRegions) || !utils34.types.isEmpty(settings.layoutRegions);
|
|
90355
|
+
(_g = settings.sendDom) !== null && _g !== void 0 ? _g : settings.sendDom = eyes.test.account.rcaEnabled || settings.matchLevel === "Layout" || settings.matchLevel === "Dynamic" || settings.enablePatterns || settings.useDom || !utils34.types.isEmpty(settings.dynamicRegions) || !utils34.types.isEmpty(settings.layoutRegions) || !utils34.types.isEmpty(settings.accessibilitySettings);
|
|
89973
90356
|
(_h = settings.autProxy) !== null && _h !== void 0 ? _h : settings.autProxy = eyes.test.eyesServer.proxy;
|
|
89974
90357
|
(_j = settings.useDom) !== null && _j !== void 0 ? _j : settings.useDom = false;
|
|
89975
90358
|
(_k = (_r = settings).retryTimeout) !== null && _k !== void 0 ? _k : _r.retryTimeout = 0;
|
|
@@ -90172,45 +90555,6 @@ var require_abort3 = __commonJS({
|
|
|
90172
90555
|
}
|
|
90173
90556
|
});
|
|
90174
90557
|
|
|
90175
|
-
// ../core/dist/errors/test-error.js
|
|
90176
|
-
var require_test_error = __commonJS({
|
|
90177
|
-
"../core/dist/errors/test-error.js"(exports) {
|
|
90178
|
-
"use strict";
|
|
90179
|
-
init_process();
|
|
90180
|
-
init_setImmediate();
|
|
90181
|
-
init_buffer();
|
|
90182
|
-
init_setInterval();
|
|
90183
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
90184
|
-
exports.TestError = void 0;
|
|
90185
|
-
var core_base_1 = require_dist2();
|
|
90186
|
-
var TestError = class extends core_base_1.CoreError {
|
|
90187
|
-
constructor(result) {
|
|
90188
|
-
if (result.status === "Failed") {
|
|
90189
|
-
super(`Test '${result.name}' of '${result.appName}' is failed! See details at ${result.url}`, {
|
|
90190
|
-
reason: "test failed",
|
|
90191
|
-
result
|
|
90192
|
-
});
|
|
90193
|
-
} else if (result.status === "Unresolved") {
|
|
90194
|
-
if (result.isNew) {
|
|
90195
|
-
super(`Test '${result.name}' of '${result.appName}' is new! Please approve the new baseline at ${result.url}`, {
|
|
90196
|
-
reason: "test new",
|
|
90197
|
-
result
|
|
90198
|
-
});
|
|
90199
|
-
} else {
|
|
90200
|
-
super(`Test '${result.name}' of '${result.appName}' detected differences! See details at: ${result.url}`, {
|
|
90201
|
-
reason: "test different",
|
|
90202
|
-
result
|
|
90203
|
-
});
|
|
90204
|
-
}
|
|
90205
|
-
} else {
|
|
90206
|
-
super("");
|
|
90207
|
-
}
|
|
90208
|
-
}
|
|
90209
|
-
};
|
|
90210
|
-
exports.TestError = TestError;
|
|
90211
|
-
}
|
|
90212
|
-
});
|
|
90213
|
-
|
|
90214
90558
|
// ../core/dist/get-eyes-results.js
|
|
90215
90559
|
var require_get_eyes_results = __commonJS({
|
|
90216
90560
|
"../core/dist/get-eyes-results.js"(exports) {
|
|
@@ -90253,7 +90597,7 @@ var require_get_eyes_results = __commonJS({
|
|
|
90253
90597
|
};
|
|
90254
90598
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
90255
90599
|
exports.makeGetEyesResults = void 0;
|
|
90256
|
-
var
|
|
90600
|
+
var core_base_1 = require_dist2();
|
|
90257
90601
|
var utils34 = __importStar(require_browser3());
|
|
90258
90602
|
function makeGetEyesResults({ eyes, logger: mainLogger }) {
|
|
90259
90603
|
return async function getEyesResults({ settings, logger = mainLogger } = {}) {
|
|
@@ -90264,7 +90608,7 @@ var require_get_eyes_results = __commonJS({
|
|
|
90264
90608
|
results.forEach((result) => {
|
|
90265
90609
|
var _a;
|
|
90266
90610
|
if (result.status !== "Passed")
|
|
90267
|
-
throw (_a = result === null || result === void 0 ? void 0 : result.reason) !== null && _a !== void 0 ? _a : new
|
|
90611
|
+
throw (_a = result === null || result === void 0 ? void 0 : result.reason) !== null && _a !== void 0 ? _a : new core_base_1.TestError(result);
|
|
90268
90612
|
});
|
|
90269
90613
|
}
|
|
90270
90614
|
return results;
|
|
@@ -90508,31 +90852,31 @@ var require_open_eyes4 = __commonJS({
|
|
|
90508
90852
|
var extract_git_info_1 = require_extract_git_info();
|
|
90509
90853
|
function makeOpenEyes({ type: defaultType = "classic", clients, batch, removeDuplicateTests, core, cores, spec, environment, logger: mainLogger, asyncCache, cwd = process.cwd() }) {
|
|
90510
90854
|
return async function openEyes({ type = defaultType, settings: openSettings, config, target, logger = mainLogger }) {
|
|
90511
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
90512
|
-
var
|
|
90855
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
90856
|
+
var _2, _3, _4, _5, _6;
|
|
90513
90857
|
logger = logger.extend(mainLogger, { tags: [`eyes-${type}-${utils34.general.shortid()}`] });
|
|
90514
|
-
const settings = { ...config === null || config === void 0 ? void 0 : config.open, ...openSettings };
|
|
90858
|
+
const settings = { environments: config === null || config === void 0 ? void 0 : config.check.environments, ...config === null || config === void 0 ? void 0 : config.open, ...openSettings };
|
|
90515
90859
|
const eyesServerSettings = (0, populate_eyes_server_settings_1.populateEyesServerSettings)(settings);
|
|
90516
90860
|
logger.mask(eyesServerSettings.apiKey);
|
|
90517
90861
|
logger.mask(eyesServerSettings.eyesServerUrl);
|
|
90518
90862
|
(_a = settings.userTestId) !== null && _a !== void 0 ? _a : settings.userTestId = `${settings.testName}--${utils34.general.guid()}`;
|
|
90519
90863
|
settings.batch = { ...batch, ...settings.batch };
|
|
90520
|
-
(_b = (
|
|
90521
|
-
(_d = (
|
|
90522
|
-
(_e = (
|
|
90523
|
-
(_f = (
|
|
90524
|
-
(_g = (
|
|
90864
|
+
(_b = (_2 = settings.batch).id) !== null && _b !== void 0 ? _b : _2.id = (_c = utils34.general.getEnvValue("BATCH_ID")) !== null && _c !== void 0 ? _c : `generated-${utils34.general.guid()}`;
|
|
90865
|
+
(_d = (_3 = settings.batch).buildId) !== null && _d !== void 0 ? _d : _3.buildId = utils34.general.getEnvValue("BATCH_BUILD_ID");
|
|
90866
|
+
(_e = (_4 = settings.batch).name) !== null && _e !== void 0 ? _e : _4.name = utils34.general.getEnvValue("BATCH_NAME");
|
|
90867
|
+
(_f = (_5 = settings.batch).sequenceName) !== null && _f !== void 0 ? _f : _5.sequenceName = utils34.general.getEnvValue("BATCH_SEQUENCE");
|
|
90868
|
+
(_g = (_6 = settings.batch).notifyOnCompletion) !== null && _g !== void 0 ? _g : _6.notifyOnCompletion = utils34.general.getEnvValue("BATCH_NOTIFY", "boolean");
|
|
90525
90869
|
(_h = settings.keepBatchOpen) !== null && _h !== void 0 ? _h : settings.keepBatchOpen = utils34.general.getEnvValue("DONT_CLOSE_BATCHES", "boolean");
|
|
90526
|
-
(_j = settings.branchName) !== null && _j !== void 0 ? _j : settings.branchName = utils34.general.getEnvValue("BRANCH");
|
|
90527
|
-
(
|
|
90528
|
-
(
|
|
90529
|
-
(
|
|
90530
|
-
(
|
|
90531
|
-
(
|
|
90532
|
-
(
|
|
90533
|
-
(
|
|
90534
|
-
(
|
|
90535
|
-
(
|
|
90870
|
+
(_j = settings.branchName) !== null && _j !== void 0 ? _j : settings.branchName = (_k = utils34.general.getEnvValue("BRANCH")) !== null && _k !== void 0 ? _k : utils34.general.getEnvValue("BRANCH_NAME");
|
|
90871
|
+
(_l = settings.parentBranchName) !== null && _l !== void 0 ? _l : settings.parentBranchName = (_m = utils34.general.getEnvValue("PARENT_BRANCH")) !== null && _m !== void 0 ? _m : utils34.general.getEnvValue("PARENT_BRANCH_NAME");
|
|
90872
|
+
(_o = settings.baselineBranchName) !== null && _o !== void 0 ? _o : settings.baselineBranchName = (_p = utils34.general.getEnvValue("BASELINE_BRANCH")) !== null && _p !== void 0 ? _p : utils34.general.getEnvValue("BASELINE_BRANCH_NAME");
|
|
90873
|
+
(_q = settings.gitBranchingTimestamp) !== null && _q !== void 0 ? _q : settings.gitBranchingTimestamp = utils34.general.getEnvValue("GIT_MERGE_BASE_TIMESTAMP");
|
|
90874
|
+
(_r = settings.latestCommitInfo) !== null && _r !== void 0 ? _r : settings.latestCommitInfo = getLatestCommitInfoFromEnvVars(logger);
|
|
90875
|
+
(_s = settings.ufgServerUrl) !== null && _s !== void 0 ? _s : settings.ufgServerUrl = utils34.general.getEnvValue("UFG_SERVER_URL");
|
|
90876
|
+
(_t = settings.ignoreBaseline) !== null && _t !== void 0 ? _t : settings.ignoreBaseline = false;
|
|
90877
|
+
(_u = settings.compareWithParentBranch) !== null && _u !== void 0 ? _u : settings.compareWithParentBranch = false;
|
|
90878
|
+
(_v = settings.removeDuplicateTests) !== null && _v !== void 0 ? _v : settings.removeDuplicateTests = removeDuplicateTests;
|
|
90879
|
+
(_w = settings.latestCommitInfo) !== null && _w !== void 0 ? _w : settings.latestCommitInfo = await (0, extract_git_info_1.extractLatestCommitInfo)({ execOptions: { cwd }, logger });
|
|
90536
90880
|
if (settings.latestCommitInfo && !(0, extract_git_info_1.isISODate)(settings.latestCommitInfo.timestamp)) {
|
|
90537
90881
|
logger.warn(`latestCommitInfo.timestamp is an invalid ISO date string: ${settings.latestCommitInfo.timestamp}`);
|
|
90538
90882
|
settings.latestCommitInfo = void 0;
|
|
@@ -90560,6 +90904,15 @@ var require_open_eyes4 = __commonJS({
|
|
|
90560
90904
|
const driver = target && await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings });
|
|
90561
90905
|
const driverEnvironment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
|
|
90562
90906
|
const driverUrl = await (driver === null || driver === void 0 ? void 0 : driver.getDriverUrl());
|
|
90907
|
+
const multiDeviceTargets = [];
|
|
90908
|
+
for (const checkEnv of (_x = settings.environments) !== null && _x !== void 0 ? _x : []) {
|
|
90909
|
+
if (utils34.types.has(checkEnv, "iosDeviceInfo") && ((_y = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _y === void 0 ? void 0 : _y.instrumented)) {
|
|
90910
|
+
multiDeviceTargets.push({
|
|
90911
|
+
deviceInfo: checkEnv.iosDeviceInfo.deviceName,
|
|
90912
|
+
orientation: (_z = checkEnv.iosDeviceInfo.screenOrientation) !== null && _z !== void 0 ? _z : "portrait"
|
|
90913
|
+
});
|
|
90914
|
+
}
|
|
90915
|
+
}
|
|
90563
90916
|
void core.logEvent({
|
|
90564
90917
|
settings: {
|
|
90565
90918
|
...settings,
|
|
@@ -90567,7 +90920,7 @@ var require_open_eyes4 = __commonJS({
|
|
|
90567
90920
|
event: {
|
|
90568
90921
|
type: "openEyes",
|
|
90569
90922
|
userTestId: settings.userTestId,
|
|
90570
|
-
concurrency: (
|
|
90923
|
+
concurrency: (_0 = cores === null || cores === void 0 ? void 0 : cores[type].concurrency) !== null && _0 !== void 0 ? _0 : core.concurrency,
|
|
90571
90924
|
environment,
|
|
90572
90925
|
driver: {
|
|
90573
90926
|
deviceName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.deviceName,
|
|
@@ -90575,10 +90928,11 @@ var require_open_eyes4 = __commonJS({
|
|
|
90575
90928
|
browserVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.browserVersion,
|
|
90576
90929
|
platformName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformName,
|
|
90577
90930
|
platformVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformVersion,
|
|
90578
|
-
isApplitoolsLib: (
|
|
90931
|
+
isApplitoolsLib: (_1 = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _1 === void 0 ? void 0 : _1.instrumented,
|
|
90579
90932
|
isEC: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.isEC
|
|
90580
90933
|
},
|
|
90581
|
-
driverUrl
|
|
90934
|
+
driverUrl,
|
|
90935
|
+
multiDeviceTargets
|
|
90582
90936
|
}
|
|
90583
90937
|
},
|
|
90584
90938
|
logger
|
|
@@ -90816,7 +91170,7 @@ var require_get_manager_results = __commonJS({
|
|
|
90816
91170
|
};
|
|
90817
91171
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
90818
91172
|
exports.makeGetManagerResults = void 0;
|
|
90819
|
-
var
|
|
91173
|
+
var core_base_1 = require_dist2();
|
|
90820
91174
|
var internal_error_1 = require_internal_error();
|
|
90821
91175
|
var separate_duplicate_results_1 = require_separate_duplicate_results();
|
|
90822
91176
|
var utils34 = __importStar(require_browser3());
|
|
@@ -90832,7 +91186,7 @@ var require_get_manager_results = __commonJS({
|
|
|
90832
91186
|
var _a2;
|
|
90833
91187
|
return {
|
|
90834
91188
|
result,
|
|
90835
|
-
error: result.status !== "Passed" ? (_a2 = result.reason) !== null && _a2 !== void 0 ? _a2 : new
|
|
91189
|
+
error: result.status !== "Passed" ? (_a2 = result.reason) !== null && _a2 !== void 0 ? _a2 : new core_base_1.TestError(result) : void 0,
|
|
90836
91190
|
userTestId: result.userTestId,
|
|
90837
91191
|
environment: result.environment
|
|
90838
91192
|
};
|
|
@@ -91191,7 +91545,7 @@ var require_package2 = __commonJS({
|
|
|
91191
91545
|
"../core/package.json"(exports, module) {
|
|
91192
91546
|
module.exports = {
|
|
91193
91547
|
name: "@applitools/core",
|
|
91194
|
-
version: "4.
|
|
91548
|
+
version: "4.35.1",
|
|
91195
91549
|
homepage: "https://applitools.com",
|
|
91196
91550
|
bugs: {
|
|
91197
91551
|
url: "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -92706,7 +93060,7 @@ var require_parse_env = __commonJS({
|
|
|
92706
93060
|
url: SAUCE_SERVER_URL,
|
|
92707
93061
|
capabilities: {
|
|
92708
93062
|
platformName: "iOS",
|
|
92709
|
-
"appium:platformVersion": "
|
|
93063
|
+
"appium:platformVersion": "14.0",
|
|
92710
93064
|
"appium:deviceName": "iPhone XS Simulator"
|
|
92711
93065
|
},
|
|
92712
93066
|
options: {
|
|
@@ -93366,6 +93720,16 @@ var require_spec_driver2 = __commonJS({
|
|
|
93366
93720
|
function getWebDriver() {
|
|
93367
93721
|
return getFrameworkMajorVersion() < 8 ? __require("webdriver").default : __require("webdriver");
|
|
93368
93722
|
}
|
|
93723
|
+
function getAgents(httpUrl, httpsUrl) {
|
|
93724
|
+
const httpProxyOptions = { ...(0, url_1.parse)(httpUrl.href), rejectUnauthorized: false };
|
|
93725
|
+
const httpAgent = (0, http_proxy_agent_1.default)(httpProxyOptions);
|
|
93726
|
+
const httpsProxyOptions = { ...(0, url_1.parse)(httpsUrl.href), rejectUnauthorized: false };
|
|
93727
|
+
const httpsAgent = (0, https_proxy_agent_1.default)(httpsProxyOptions);
|
|
93728
|
+
httpsAgent.callback = utils34.general.wrap(httpsAgent.callback.bind(httpsAgent), (fn, request, options, ...rest) => {
|
|
93729
|
+
return fn(request, { ...options, rejectUnauthorized: false }, ...rest);
|
|
93730
|
+
});
|
|
93731
|
+
return { httpAgent, httpsAgent };
|
|
93732
|
+
}
|
|
93369
93733
|
function isDriver(driver) {
|
|
93370
93734
|
if (!driver)
|
|
93371
93735
|
return false;
|
|
@@ -93418,7 +93782,7 @@ var require_spec_driver2 = __commonJS({
|
|
|
93418
93782
|
}
|
|
93419
93783
|
exports.isStaleElementError = isStaleElementError;
|
|
93420
93784
|
function toDriver(driver) {
|
|
93421
|
-
var _a, _b, _c;
|
|
93785
|
+
var _a, _b, _c, _d, _e;
|
|
93422
93786
|
let transformedDriver;
|
|
93423
93787
|
if (utils34.types.has(driver, ["sessionId", "serverUrl"])) {
|
|
93424
93788
|
const url = new URL(driver.serverUrl);
|
|
@@ -93443,12 +93807,12 @@ var require_spec_driver2 = __commonJS({
|
|
|
93443
93807
|
const proxyUrl = new URL(driver.proxy.url);
|
|
93444
93808
|
proxyUrl.username = (_b = driver.proxy.username) !== null && _b !== void 0 ? _b : proxyUrl.username;
|
|
93445
93809
|
proxyUrl.password = (_c = driver.proxy.password) !== null && _c !== void 0 ? _c : proxyUrl.password;
|
|
93446
|
-
const
|
|
93447
|
-
|
|
93448
|
-
|
|
93449
|
-
|
|
93450
|
-
|
|
93451
|
-
});
|
|
93810
|
+
const { httpAgent, httpsAgent } = getAgents(proxyUrl, proxyUrl);
|
|
93811
|
+
options.agent = { http: httpAgent, https: httpsAgent };
|
|
93812
|
+
} else if (process.env.HTTP_PROXY || process.env.HTTPS_PROXY) {
|
|
93813
|
+
const httpUrl = new URL((_d = process.env.HTTP_PROXY) !== null && _d !== void 0 ? _d : process.env.HTTPS_PROXY);
|
|
93814
|
+
const httpsUrl = new URL((_e = process.env.HTTPS_PROXY) !== null && _e !== void 0 ? _e : process.env.HTTP_PROXY);
|
|
93815
|
+
const { httpAgent, httpsAgent } = getAgents(httpUrl, httpsUrl);
|
|
93452
93816
|
options.agent = { http: httpAgent, https: httpsAgent };
|
|
93453
93817
|
} else {
|
|
93454
93818
|
const httpAgent = http_1.default.globalAgent;
|
|
@@ -93728,6 +94092,7 @@ var require_spec_driver2 = __commonJS({
|
|
|
93728
94092
|
firefox: "moz:firefoxOptions"
|
|
93729
94093
|
};
|
|
93730
94094
|
async function build(env) {
|
|
94095
|
+
var _a, _b;
|
|
93731
94096
|
const WebDriver = getWebDriver();
|
|
93732
94097
|
const parseEnv = require_parse_env();
|
|
93733
94098
|
const { browser = "", capabilities, url, proxy, configurable = true, args = [], headless, logLevel = "silent" } = parseEnv(env);
|
|
@@ -93763,7 +94128,14 @@ var require_spec_driver2 = __commonJS({
|
|
|
93763
94128
|
noProxy: proxy.bypass.join(",")
|
|
93764
94129
|
};
|
|
93765
94130
|
}
|
|
93766
|
-
|
|
94131
|
+
if (process.env.HTTP_PROXY || process.env.HTTPS_PROXY) {
|
|
94132
|
+
const httpUrl = new URL((_a = process.env.HTTP_PROXY) !== null && _a !== void 0 ? _a : process.env.HTTPS_PROXY);
|
|
94133
|
+
const httpsUrl = new URL((_b = process.env.HTTPS_PROXY) !== null && _b !== void 0 ? _b : process.env.HTTP_PROXY);
|
|
94134
|
+
const { httpAgent, httpsAgent } = getAgents(httpUrl, httpsUrl);
|
|
94135
|
+
options.agent = { http: httpAgent, https: httpsAgent };
|
|
94136
|
+
} else {
|
|
94137
|
+
options.agent = { https: require_https_browserify().Agent({ rejectUnauthorized: false }) };
|
|
94138
|
+
}
|
|
93767
94139
|
const driver = await WebDriver.newSession(options);
|
|
93768
94140
|
return [driver, () => driver.deleteSession()];
|
|
93769
94141
|
}
|
|
@@ -93988,13 +94360,35 @@ var require_spec_driver3 = __commonJS({
|
|
|
93988
94360
|
},
|
|
93989
94361
|
async reload(driver) {
|
|
93990
94362
|
return socket.request("Driver.reload", { driver });
|
|
94363
|
+
},
|
|
94364
|
+
async isUserFunction(ref) {
|
|
94365
|
+
return utils34.types.has(ref, "applitools-ref-id");
|
|
94366
|
+
},
|
|
94367
|
+
async executeUserFunction(userFunction) {
|
|
94368
|
+
return socket.request("Driver.executeUserFunction", userFunction);
|
|
93991
94369
|
}
|
|
93992
94370
|
};
|
|
94371
|
+
spec = addDefaultCommands(spec);
|
|
93993
94372
|
return spec.reduce((spec2, name) => {
|
|
93994
94373
|
return Object.assign(spec2, { [name]: commands[name] });
|
|
93995
94374
|
}, {});
|
|
93996
94375
|
}
|
|
93997
94376
|
exports.makeSpec = makeSpec;
|
|
94377
|
+
function addDefaultCommands(spec) {
|
|
94378
|
+
const defaultCommands = [
|
|
94379
|
+
{
|
|
94380
|
+
command: "isUserFunction",
|
|
94381
|
+
dependsOn: ["executeUserFunction"]
|
|
94382
|
+
}
|
|
94383
|
+
];
|
|
94384
|
+
const commands = spec.slice();
|
|
94385
|
+
defaultCommands.forEach(({ command, dependsOn }) => {
|
|
94386
|
+
if (!commands.includes(command) && dependsOn.every((dep) => commands.includes(dep))) {
|
|
94387
|
+
commands.push(command);
|
|
94388
|
+
}
|
|
94389
|
+
});
|
|
94390
|
+
return commands;
|
|
94391
|
+
}
|
|
93998
94392
|
}
|
|
93999
94393
|
});
|
|
94000
94394
|
|
|
@@ -95498,8 +95892,14 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95498
95892
|
var utils34 = __importStar(require_browser3());
|
|
95499
95893
|
var merge_configs_1 = require_merge_configs();
|
|
95500
95894
|
var format_results_1 = require_format_results();
|
|
95895
|
+
var throat_1 = __importDefault(require_throat());
|
|
95896
|
+
function getConsoleLogLimit() {
|
|
95897
|
+
var _a;
|
|
95898
|
+
return (_a = utils34.general.getEnvValue("OFFLINE_LOG_LIMIT", "number")) !== null && _a !== void 0 ? _a : 20;
|
|
95899
|
+
}
|
|
95501
95900
|
async function runOfflineSnapshots(options) {
|
|
95502
95901
|
var _a;
|
|
95902
|
+
const limitConsoleLogs = getConsoleLogLimit();
|
|
95503
95903
|
if (!options.offlineLocationPath)
|
|
95504
95904
|
throw new Error("offlineLocationPath is required");
|
|
95505
95905
|
const offlineLocationPath = path_1.default.resolve(options.offlineLocationPath);
|
|
@@ -95528,7 +95928,9 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95528
95928
|
totalTime: Date.now() - startTime,
|
|
95529
95929
|
jsonFilePath: options.jsonFilePath
|
|
95530
95930
|
});
|
|
95531
|
-
if (!isSuccess && options.
|
|
95931
|
+
if (!isSuccess.onErrors && options.failOnError) {
|
|
95932
|
+
throw new Error(outputStr);
|
|
95933
|
+
} else if (!isSuccess.onDiffs && options.failOnDiff) {
|
|
95532
95934
|
throw new Error(outputStr);
|
|
95533
95935
|
} else {
|
|
95534
95936
|
logger.console.log(outputStr);
|
|
@@ -95536,13 +95938,27 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95536
95938
|
return allTestResults;
|
|
95537
95939
|
async function runTests(testFolders2) {
|
|
95538
95940
|
logger.log("running tests", testFolders2);
|
|
95539
|
-
const
|
|
95941
|
+
const messages = [];
|
|
95942
|
+
const testPromises = testFolders2.map(async (testFolder) => {
|
|
95540
95943
|
const testLogger = logger.extend({ tags: [testFolder] });
|
|
95541
95944
|
const testPath = path_1.default.join(offlineLocationPath, testFolder);
|
|
95542
95945
|
const fileOpenSettings = await fs_1.default.promises.readFile(path_1.default.join(testPath, "settings.json"), "utf-8").then(JSON.parse);
|
|
95543
95946
|
const openSettings = (0, merge_configs_1.mergeConfigs)(fileOpenSettings, options.config.open);
|
|
95544
|
-
|
|
95545
|
-
return
|
|
95947
|
+
messages.push(`Running test: ${openSettings.testName} (${formatEnvironment(openSettings.environment)})`);
|
|
95948
|
+
return { testPath, openSettings, testLogger };
|
|
95949
|
+
});
|
|
95950
|
+
const preparedTests = await Promise.all(testPromises);
|
|
95951
|
+
if (messages.length > limitConsoleLogs) {
|
|
95952
|
+
const slice = messages.slice(0, limitConsoleLogs);
|
|
95953
|
+
logger.console.log(slice.join("\n") + `
|
|
95954
|
+
... ${messages.length - limitConsoleLogs} more tests`);
|
|
95955
|
+
} else {
|
|
95956
|
+
logger.console.log(messages.join("\n"));
|
|
95957
|
+
}
|
|
95958
|
+
const testConcurrency = utils34.general.getEnvValue("TEST_CONCURRENCY", "number");
|
|
95959
|
+
const runTestThrottled = testConcurrency ? (0, throat_1.default)(testConcurrency, runTest) : runTest;
|
|
95960
|
+
const results = await Promise.all(preparedTests.map(async ({ testPath, openSettings, testLogger }) => {
|
|
95961
|
+
return runTestThrottled(testPath, openSettings, testLogger);
|
|
95546
95962
|
}));
|
|
95547
95963
|
const batchIds = [...new Set(results.map((t) => t.batchId))];
|
|
95548
95964
|
const allTestResults2 = results.map((t) => t.results);
|
|
@@ -95550,8 +95966,8 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95550
95966
|
const keepBatchOpen = utils34.general.getEnvValue("DONT_CLOSE_BATCHES", "boolean") || options.config.open.keepBatchOpen;
|
|
95551
95967
|
if (!keepBatchOpen) {
|
|
95552
95968
|
await core.closeBatch({ settings: batchIds.map((batchId) => ({ batchId, ...account.eyesServer })) });
|
|
95969
|
+
logger.log("done closing batches");
|
|
95553
95970
|
}
|
|
95554
|
-
logger.log("done closing batches");
|
|
95555
95971
|
return allTestResults2;
|
|
95556
95972
|
}
|
|
95557
95973
|
async function runTest(testPath, openSettings, logger2) {
|
|
@@ -95569,20 +95985,29 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95569
95985
|
},
|
|
95570
95986
|
logger: logger2
|
|
95571
95987
|
});
|
|
95572
|
-
const
|
|
95573
|
-
|
|
95574
|
-
|
|
95575
|
-
|
|
95576
|
-
|
|
95577
|
-
|
|
95578
|
-
|
|
95579
|
-
|
|
95580
|
-
|
|
95581
|
-
|
|
95582
|
-
|
|
95583
|
-
|
|
95584
|
-
|
|
95585
|
-
|
|
95988
|
+
const closeSettingsPath = path_1.default.resolve(testPath, "close.json");
|
|
95989
|
+
if (fs_1.default.existsSync(closeSettingsPath)) {
|
|
95990
|
+
const checkFolders = (await fs_1.default.promises.readdir(testPath)).filter((folderpath) => folderpath.startsWith("check-"));
|
|
95991
|
+
logger2.log("running checks for test", testPath, ":", checkFolders);
|
|
95992
|
+
const targets = await Promise.all(checkFolders.map(async (checkFolder) => {
|
|
95993
|
+
const snapshot = await fs_1.default.promises.readFile(path_1.default.resolve(testPath, checkFolder, "snapshot.json"), "utf-8").then(JSON.parse);
|
|
95994
|
+
snapshot.settings.environment.environmentId = utils34.general.guid();
|
|
95995
|
+
return snapshot;
|
|
95996
|
+
}));
|
|
95997
|
+
await uploadResources(targets, logger2);
|
|
95998
|
+
logger2.log("uploaded resources for test", testPath);
|
|
95999
|
+
await Promise.all(targets.map((target, index) => runCheck(eyes, target, index, logger2)));
|
|
96000
|
+
const fileCloseSettings = await fs_1.default.promises.readFile(closeSettingsPath, "utf-8").then(JSON.parse);
|
|
96001
|
+
const closeSettings = (0, merge_configs_1.mergeConfigs)(fileCloseSettings, options.config.close);
|
|
96002
|
+
await eyes.close({ settings: closeSettings });
|
|
96003
|
+
} else {
|
|
96004
|
+
await eyes.abort({
|
|
96005
|
+
settings: {
|
|
96006
|
+
reason: "internal"
|
|
96007
|
+
}
|
|
96008
|
+
});
|
|
96009
|
+
}
|
|
96010
|
+
logger2.log("done running test", testPath);
|
|
95586
96011
|
return { batchId: openSettings.batch.id, results: (await eyes.getResults({ logger: logger2 }))[0] };
|
|
95587
96012
|
}
|
|
95588
96013
|
async function uploadResources(targets, logger2) {
|
|
@@ -95658,7 +96083,7 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95658
96083
|
function uniq(arr) {
|
|
95659
96084
|
return [...new Set(arr)];
|
|
95660
96085
|
}
|
|
95661
|
-
function processResults({ testResults, totalTime, saveNewTests = true,
|
|
96086
|
+
function processResults({ testResults, totalTime, saveNewTests = true, jsonFilePath }) {
|
|
95662
96087
|
let outputStr = "\n";
|
|
95663
96088
|
const pluralize = utils34.general.pluralize;
|
|
95664
96089
|
const testResultsWithErrors = testResults.filter((r) => r && r.reason);
|
|
@@ -95686,16 +96111,16 @@ var require_run_offline_snapshots = __commonJS({
|
|
|
95686
96111
|
}
|
|
95687
96112
|
outputStr += "[EYES: TEST RESULTS]:\n\n";
|
|
95688
96113
|
if (passedOrNew.length > 0) {
|
|
95689
|
-
outputStr += testResultsOutput(passedOrNew, warnForUnsavedNewTests);
|
|
96114
|
+
outputStr += testResultsOutput(passedOrNew, warnForUnsavedNewTests, "Passed");
|
|
95690
96115
|
}
|
|
95691
96116
|
if (failedTests.length > 0) {
|
|
95692
|
-
outputStr += testResultsOutput(failedTests, warnForUnsavedNewTests);
|
|
96117
|
+
outputStr += testResultsOutput(failedTests, warnForUnsavedNewTests, "Failed");
|
|
95693
96118
|
}
|
|
95694
96119
|
if (unresolved.length > 0) {
|
|
95695
|
-
outputStr += testResultsOutput(unresolved, warnForUnsavedNewTests);
|
|
96120
|
+
outputStr += testResultsOutput(unresolved, warnForUnsavedNewTests, "Unresolved");
|
|
95696
96121
|
}
|
|
95697
96122
|
if (aborted.length > 0) {
|
|
95698
|
-
outputStr += testResultsOutput(aborted, warnForUnsavedNewTests);
|
|
96123
|
+
outputStr += testResultsOutput(aborted, warnForUnsavedNewTests, "Aborted");
|
|
95699
96124
|
}
|
|
95700
96125
|
if (errors.length) {
|
|
95701
96126
|
const sortedErrors = errors.sort((a, b) => a.title.localeCompare(b.title));
|
|
@@ -95746,42 +96171,48 @@ ${seeDetailsStr}
|
|
|
95746
96171
|
Total time: ${Math.round(totalTime / 1e3)} seconds
|
|
95747
96172
|
`;
|
|
95748
96173
|
}
|
|
95749
|
-
|
|
95750
|
-
|
|
95751
|
-
|
|
95752
|
-
} else if (failOnDiff) {
|
|
95753
|
-
isSuccess = !warnForUnsavedNewTests && passedOrNew.length && !unresolvedOrFailed.length;
|
|
95754
|
-
} else {
|
|
95755
|
-
isSuccess = true;
|
|
95756
|
-
}
|
|
96174
|
+
const isSuccess = { onErrors: true, onDiffs: true };
|
|
96175
|
+
isSuccess.onErrors = !errors.length;
|
|
96176
|
+
isSuccess.onDiffs = !!(!warnForUnsavedNewTests && passedOrNew.length && !unresolvedOrFailed.length);
|
|
95757
96177
|
return {
|
|
95758
96178
|
outputStr,
|
|
95759
96179
|
isSuccess
|
|
95760
96180
|
};
|
|
95761
96181
|
}
|
|
95762
|
-
function testResultsOutput(results, warnForUnsavedNewTests) {
|
|
95763
|
-
|
|
96182
|
+
function testResultsOutput(results, warnForUnsavedNewTests, tag) {
|
|
96183
|
+
const limitConsoleLogs = getConsoleLogLimit();
|
|
96184
|
+
const truncated = [];
|
|
96185
|
+
let limitCount = 0;
|
|
95764
96186
|
const sortedTestResults = results.sort((a, b) => a.name.localeCompare(b.name));
|
|
95765
96187
|
sortedTestResults.forEach((result) => {
|
|
95766
96188
|
const testTitle = `${result.name} [${result.hostApp}] [${result.hostDisplaySize.width}x${result.hostDisplaySize.height}] - `;
|
|
95767
96189
|
if (result.isAborted) {
|
|
95768
|
-
|
|
96190
|
+
const str = `${testTitle}${chalk_1.default.keyword("red")(`Aborted`)}
|
|
95769
96191
|
`;
|
|
96192
|
+
truncated.push(str);
|
|
95770
96193
|
} else if (result.isNew) {
|
|
95771
96194
|
const newResColor = warnForUnsavedNewTests ? "orange" : "blue";
|
|
95772
|
-
|
|
96195
|
+
const str = `${testTitle}${chalk_1.default.keyword(newResColor)("New")}
|
|
95773
96196
|
`;
|
|
96197
|
+
truncated.push(str);
|
|
95774
96198
|
} else if (result.status === "Passed") {
|
|
95775
|
-
|
|
96199
|
+
const str = `${testTitle}${chalk_1.default.green("Passed")}
|
|
95776
96200
|
`;
|
|
96201
|
+
truncated.push(str);
|
|
95777
96202
|
} else if (result.status === "Failed") {
|
|
95778
|
-
|
|
96203
|
+
const str = `${testTitle}${chalk_1.default.keyword("red")("Failed")}
|
|
95779
96204
|
`;
|
|
96205
|
+
truncated.push(str);
|
|
95780
96206
|
} else {
|
|
95781
|
-
|
|
96207
|
+
const str = `${testTitle}${chalk_1.default.keyword("orange")(`Unresolved`)}
|
|
95782
96208
|
`;
|
|
96209
|
+
truncated.push(str);
|
|
95783
96210
|
}
|
|
96211
|
+
if (limitCount < limitConsoleLogs)
|
|
96212
|
+
limitCount++;
|
|
95784
96213
|
});
|
|
96214
|
+
let outputStr = truncated.slice(0, limitConsoleLogs).join("");
|
|
96215
|
+
outputStr += results.length - limitCount > 0 ? `... ${results.length - limitCount} more ${tag} tests` : "";
|
|
95785
96216
|
outputStr += "\n";
|
|
95786
96217
|
return outputStr;
|
|
95787
96218
|
}
|
|
@@ -95873,7 +96304,7 @@ var require_package3 = __commonJS({
|
|
|
95873
96304
|
"../eyes/package.json"(exports, module) {
|
|
95874
96305
|
module.exports = {
|
|
95875
96306
|
name: "@applitools/eyes",
|
|
95876
|
-
version: "1.
|
|
96307
|
+
version: "1.33.2",
|
|
95877
96308
|
keywords: [
|
|
95878
96309
|
"applitools",
|
|
95879
96310
|
"eyes",
|
|
@@ -97912,6 +98343,10 @@ var CheckSettingsAutomationFluent = class extends CheckSettingsBaseFluent {
|
|
|
97912
98343
|
this._settings.densityMetrics = options;
|
|
97913
98344
|
return this;
|
|
97914
98345
|
}
|
|
98346
|
+
stitchMode(stitchMode) {
|
|
98347
|
+
this._settings.stitchMode = stitchMode;
|
|
98348
|
+
return this;
|
|
98349
|
+
}
|
|
97915
98350
|
/** @internal */
|
|
97916
98351
|
toJSON() {
|
|
97917
98352
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
@@ -97950,7 +98385,8 @@ var CheckSettingsAutomationFluent = class extends CheckSettingsBaseFluent {
|
|
|
97950
98385
|
retryTimeout: this._settings.timeout,
|
|
97951
98386
|
userCommandId: this._settings.variationGroupId,
|
|
97952
98387
|
densityMetrics: this._settings.densityMetrics,
|
|
97953
|
-
assumesMutability: this.assumesMutability()
|
|
98388
|
+
assumesMutability: this.assumesMutability(),
|
|
98389
|
+
stitchMode: this._settings.stitchMode
|
|
97954
98390
|
})
|
|
97955
98391
|
};
|
|
97956
98392
|
}
|
|
@@ -99524,7 +99960,11 @@ var ConfigurationData = class {
|
|
|
99524
99960
|
return this._config.waitBeforeCapture;
|
|
99525
99961
|
}
|
|
99526
99962
|
set waitBeforeCapture(waitBeforeCapture) {
|
|
99527
|
-
utils20.
|
|
99963
|
+
if (utils20.types.isNumber(waitBeforeCapture)) {
|
|
99964
|
+
utils20.guard.isInteger(waitBeforeCapture, { name: "waitBeforeCapture", gt: 0 });
|
|
99965
|
+
} else {
|
|
99966
|
+
utils20.guard.isFunction(waitBeforeCapture, { name: "waitBeforeCapture" });
|
|
99967
|
+
}
|
|
99528
99968
|
this._config.waitBeforeCapture = waitBeforeCapture;
|
|
99529
99969
|
}
|
|
99530
99970
|
getWaitBeforeCapture() {
|
|
@@ -99548,13 +99988,27 @@ var ConfigurationData = class {
|
|
|
99548
99988
|
this.waitBeforeScreenshots = waitBeforeScreenshots;
|
|
99549
99989
|
return this;
|
|
99550
99990
|
}
|
|
99991
|
+
get fully() {
|
|
99992
|
+
return this._config.fully;
|
|
99993
|
+
}
|
|
99994
|
+
set fully(fully) {
|
|
99995
|
+
utils20.guard.isBoolean(fully, { name: "fully" });
|
|
99996
|
+
this._config.fully = fully;
|
|
99997
|
+
}
|
|
99998
|
+
getFully() {
|
|
99999
|
+
return this.fully;
|
|
100000
|
+
}
|
|
100001
|
+
setFully(fully) {
|
|
100002
|
+
this.fully = fully;
|
|
100003
|
+
return this;
|
|
100004
|
+
}
|
|
99551
100005
|
/** @internal */
|
|
99552
100006
|
toObject() {
|
|
99553
100007
|
return this._config;
|
|
99554
100008
|
}
|
|
99555
100009
|
/** @internal */
|
|
99556
100010
|
toJSON() {
|
|
99557
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
|
|
100011
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
99558
100012
|
return utils20.general.toJSON({
|
|
99559
100013
|
open: utils20.general.removeUndefinedProps({
|
|
99560
100014
|
eyesServerUrl: this.serverUrl,
|
|
@@ -99595,7 +100049,7 @@ var ConfigurationData = class {
|
|
|
99595
100049
|
disableBrokerUrlCache: this.disableNMLUrlCache
|
|
99596
100050
|
}),
|
|
99597
100051
|
screenshot: utils20.general.removeUndefinedProps({
|
|
99598
|
-
fully: this.forceFullPageScreenshot,
|
|
100052
|
+
fully: (_a = this.fully) != null ? _a : this.forceFullPageScreenshot,
|
|
99599
100053
|
scrollRootElement: this.scrollRootElement,
|
|
99600
100054
|
stitchMode: this.stitchMode,
|
|
99601
100055
|
hideScrollbars: this.hideScrollbars,
|
|
@@ -99608,12 +100062,12 @@ var ConfigurationData = class {
|
|
|
99608
100062
|
rotation: this.rotation,
|
|
99609
100063
|
scaleRatio: this.scaleRatio
|
|
99610
100064
|
}),
|
|
99611
|
-
debugImages: ((
|
|
100065
|
+
debugImages: ((_b = this.debugScreenshots) == null ? void 0 : _b.save) && utils20.types.has(this.debugScreenshots, "path") ? this.debugScreenshots : void 0,
|
|
99612
100066
|
captureStatusBar: this.captureStatusBar,
|
|
99613
100067
|
mobileOptions: this.mobileOptions
|
|
99614
100068
|
}),
|
|
99615
100069
|
check: utils20.general.removeUndefinedProps({
|
|
99616
|
-
environments: (
|
|
100070
|
+
environments: (_c = this.browsersInfo) == null ? void 0 : _c.map((browserInfo) => {
|
|
99617
100071
|
if (utils20.types.has(browserInfo, "iosDeviceInfo") && utils20.types.has(browserInfo.iosDeviceInfo, "iosVersion")) {
|
|
99618
100072
|
const { iosVersion, ...iosDeviceInfo } = browserInfo.iosDeviceInfo;
|
|
99619
100073
|
return { iosDeviceInfo: { ...iosDeviceInfo, version: iosVersion } };
|
|
@@ -99621,26 +100075,26 @@ var ConfigurationData = class {
|
|
|
99621
100075
|
return browserInfo;
|
|
99622
100076
|
}),
|
|
99623
100077
|
ufgOptions: this.visualGridOptions,
|
|
99624
|
-
layoutBreakpoints: utils20.types.isDefined(this.layoutBreakpoints) ? utils20.types.has(this.layoutBreakpoints, "breakpoints") ? this.layoutBreakpoints : { breakpoints: (
|
|
100078
|
+
layoutBreakpoints: utils20.types.isDefined(this.layoutBreakpoints) ? utils20.types.has(this.layoutBreakpoints, "breakpoints") ? this.layoutBreakpoints : { breakpoints: (_d = this.layoutBreakpoints) != null ? _d : false } : void 0,
|
|
99625
100079
|
disableBrowserFetching: this.disableBrowserFetching,
|
|
99626
100080
|
autProxy: this.autProxy,
|
|
99627
100081
|
sendDom: this.sendDom,
|
|
99628
100082
|
retryTimeout: this.matchTimeout,
|
|
99629
|
-
matchLevel: (
|
|
99630
|
-
ignoreCaret: (
|
|
99631
|
-
ignoreDisplacements: (
|
|
99632
|
-
enablePatterns: (
|
|
99633
|
-
accessibilitySettings: ((
|
|
100083
|
+
matchLevel: (_e = this.defaultMatchSettings) == null ? void 0 : _e.matchLevel,
|
|
100084
|
+
ignoreCaret: (_f = this.defaultMatchSettings) == null ? void 0 : _f.ignoreCaret,
|
|
100085
|
+
ignoreDisplacements: (_g = this.defaultMatchSettings) == null ? void 0 : _g.ignoreDisplacements,
|
|
100086
|
+
enablePatterns: (_h = this.defaultMatchSettings) == null ? void 0 : _h.enablePatterns,
|
|
100087
|
+
accessibilitySettings: ((_i = this.defaultMatchSettings) == null ? void 0 : _i.accessibilitySettings) && {
|
|
99634
100088
|
level: this.defaultMatchSettings.accessibilitySettings.level,
|
|
99635
100089
|
version: this.defaultMatchSettings.accessibilitySettings.guidelinesVersion
|
|
99636
100090
|
},
|
|
99637
|
-
useDom: (
|
|
99638
|
-
ignoreRegions: (
|
|
99639
|
-
contentRegions: (
|
|
99640
|
-
layoutRegions: (
|
|
99641
|
-
strictRegions: (
|
|
99642
|
-
floatingRegions: (
|
|
99643
|
-
accessibilityRegions: (
|
|
100091
|
+
useDom: (_j = this.defaultMatchSettings) == null ? void 0 : _j.useDom,
|
|
100092
|
+
ignoreRegions: (_k = this.defaultMatchSettings) == null ? void 0 : _k.ignoreRegions,
|
|
100093
|
+
contentRegions: (_l = this.defaultMatchSettings) == null ? void 0 : _l.contentRegions,
|
|
100094
|
+
layoutRegions: (_m = this.defaultMatchSettings) == null ? void 0 : _m.layoutRegions,
|
|
100095
|
+
strictRegions: (_n = this.defaultMatchSettings) == null ? void 0 : _n.strictRegions,
|
|
100096
|
+
floatingRegions: (_o = this.defaultMatchSettings) == null ? void 0 : _o.floatingRegions,
|
|
100097
|
+
accessibilityRegions: (_p = this.defaultMatchSettings) == null ? void 0 : _p.accessibilityRegions
|
|
99644
100098
|
}),
|
|
99645
100099
|
close: utils20.general.removeUndefinedProps({
|
|
99646
100100
|
updateBaselineIfDifferent: this.saveFailedTests,
|
|
@@ -100278,8 +100732,10 @@ init_setInterval();
|
|
|
100278
100732
|
var import_core = __toESM(require_dist9());
|
|
100279
100733
|
var utils29 = __toESM(require_browser3());
|
|
100280
100734
|
function initSDK(options, maskLog) {
|
|
100281
|
-
if (options)
|
|
100735
|
+
if (options) {
|
|
100282
100736
|
options.maskLog = maskLog;
|
|
100737
|
+
options.offlineLocationPath = utils29.general.getEnvValue("OFFLINE_LOCATION_PATH");
|
|
100738
|
+
}
|
|
100283
100739
|
return {
|
|
100284
100740
|
core: getCoreWithCache(options),
|
|
100285
100741
|
spec: options == null ? void 0 : options.spec
|