@applitools/core 3.6.6 → 3.8.0
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 +21 -1
- package/package.json +3 -3
- package/dist/automation/extract-text.js +0 -79
- package/dist/automation/get-nml-client.js +0 -42
- package/dist/automation/get-viewport-size.js +0 -13
- package/dist/automation/locate-text.js +0 -58
- package/dist/automation/locate.js +0 -60
- package/dist/automation/set-viewport-size.js +0 -13
- package/dist/automation/types.js +0 -2
- package/dist/automation/utils/take-screenshot.js +0 -59
- package/dist/automation/utils/to-base-check-settings.js +0 -70
- package/dist/automation/utils/wait-for-lazy-load.js +0 -22
- package/dist/check-and-close.js +0 -49
- package/dist/check.js +0 -78
- package/dist/classic/abort.js +0 -23
- package/dist/classic/check-and-close.js +0 -104
- package/dist/classic/check.js +0 -117
- package/dist/classic/close.js +0 -23
- package/dist/classic/core.js +0 -55
- package/dist/classic/get-base-eyes.js +0 -40
- package/dist/classic/open-eyes.js +0 -98
- package/dist/classic/types.js +0 -17
- package/dist/classic/utils/take-dom-capture.js +0 -121
- package/dist/cli/cli.js +0 -139
- package/dist/close-batch.js +0 -39
- package/dist/close.js +0 -38
- package/dist/core.js +0 -64
- package/dist/delete-test.js +0 -39
- package/dist/errors/abort-error.js +0 -10
- package/dist/errors/internal-error.js +0 -11
- package/dist/errors/test-error.js +0 -32
- package/dist/extract-text.js +0 -46
- package/dist/get-account-info.js +0 -37
- package/dist/get-ec-client.js +0 -37
- package/dist/get-eyes-results.js +0 -43
- package/dist/get-manager-results.js +0 -112
- package/dist/get-typed-eyes.js +0 -27
- package/dist/index.js +0 -38
- package/dist/locate-text.js +0 -41
- package/dist/locate.js +0 -41
- package/dist/log-event.js +0 -39
- package/dist/make-manager.js +0 -60
- package/dist/open-eyes.js +0 -98
- package/dist/troubleshoot/check-network.js +0 -114
- package/dist/troubleshoot/eyes.js +0 -85
- package/dist/troubleshoot/logs.js +0 -41
- package/dist/troubleshoot/ufg.js +0 -131
- package/dist/troubleshoot/utils.js +0 -44
- package/dist/types.js +0 -17
- package/dist/ufg/abort.js +0 -33
- package/dist/ufg/check-and-close.js +0 -267
- package/dist/ufg/check.js +0 -274
- package/dist/ufg/close.js +0 -38
- package/dist/ufg/core.js +0 -57
- package/dist/ufg/get-base-eyes.js +0 -56
- package/dist/ufg/get-results.js +0 -28
- package/dist/ufg/get-ufg-client.js +0 -47
- package/dist/ufg/open-eyes.js +0 -97
- package/dist/ufg/types.js +0 -17
- package/dist/ufg/utils/generate-safe-selectors.js +0 -63
- package/dist/ufg/utils/take-dom-snapshot.js +0 -134
- package/dist/ufg/utils/take-dom-snapshots.js +0 -153
- package/dist/ufg/utils/uniquify-renderers.js +0 -27
- package/dist/universal/core-server-process.js +0 -31
- package/dist/universal/core-server.js +0 -190
- package/dist/universal/core.js +0 -158
- package/dist/universal/history.js +0 -86
- package/dist/universal/refer.js +0 -67
- package/dist/universal/spec-driver.js +0 -163
- package/dist/universal/types.js +0 -2
- package/dist/universal/ws-server.js +0 -59
- package/dist/utils/extract-ci-provider.js +0 -31
- package/dist/utils/format-results.js +0 -185
- package/dist/utils/separate-duplicate-results.js +0 -34
- package/types/automation/extract-text.d.ts +0 -15
- package/types/automation/get-nml-client.d.ts +0 -17
- package/types/automation/get-viewport-size.d.ts +0 -12
- package/types/automation/locate-text.d.ts +0 -14
- package/types/automation/locate.d.ts +0 -14
- package/types/automation/set-viewport-size.d.ts +0 -14
- package/types/automation/types.d.ts +0 -90
- package/types/automation/utils/take-screenshot.d.ts +0 -22
- package/types/automation/utils/to-base-check-settings.d.ts +0 -17
- package/types/automation/utils/wait-for-lazy-load.d.ts +0 -14
- package/types/check-and-close.d.ts +0 -18
- package/types/check.d.ts +0 -18
- package/types/classic/abort.d.ts +0 -16
- package/types/classic/check-and-close.d.ts +0 -19
- package/types/classic/check.d.ts +0 -15
- package/types/classic/close.d.ts +0 -16
- package/types/classic/core.d.ts +0 -17
- package/types/classic/get-base-eyes.d.ts +0 -18
- package/types/classic/open-eyes.d.ts +0 -16
- package/types/classic/types.d.ts +0 -35
- package/types/classic/utils/take-dom-capture.d.ts +0 -16
- package/types/cli/cli.d.ts +0 -2
- package/types/close-batch.d.ts +0 -12
- package/types/close.d.ts +0 -13
- package/types/core.d.ts +0 -14
- package/types/delete-test.d.ts +0 -12
- package/types/errors/abort-error.d.ts +0 -4
- package/types/errors/internal-error.d.ts +0 -6
- package/types/errors/test-error.d.ts +0 -5
- package/types/extract-text.d.ts +0 -16
- package/types/get-account-info.d.ts +0 -11
- package/types/get-ec-client.d.ts +0 -14
- package/types/get-eyes-results.d.ts +0 -12
- package/types/get-manager-results.d.ts +0 -13
- package/types/get-typed-eyes.d.ts +0 -19
- package/types/index.d.ts +0 -9
- package/types/locate-text.d.ts +0 -15
- package/types/locate.d.ts +0 -16
- package/types/log-event.d.ts +0 -12
- package/types/make-manager.d.ts +0 -19
- package/types/open-eyes.d.ts +0 -22
- package/types/troubleshoot/check-network.d.ts +0 -21
- package/types/troubleshoot/eyes.d.ts +0 -11
- package/types/troubleshoot/logs.d.ts +0 -10
- package/types/troubleshoot/ufg.d.ts +0 -10
- package/types/troubleshoot/utils.d.ts +0 -2
- package/types/types.d.ts +0 -142
- package/types/ufg/abort.d.ts +0 -21
- package/types/ufg/check-and-close.d.ts +0 -41
- package/types/ufg/check.d.ts +0 -23
- package/types/ufg/close.d.ts +0 -19
- package/types/ufg/core.d.ts +0 -21
- package/types/ufg/get-base-eyes.d.ts +0 -19
- package/types/ufg/get-results.d.ts +0 -16
- package/types/ufg/get-ufg-client.d.ts +0 -16
- package/types/ufg/open-eyes.d.ts +0 -16
- package/types/ufg/types.d.ts +0 -72
- package/types/ufg/utils/generate-safe-selectors.d.ts +0 -16
- package/types/ufg/utils/take-dom-snapshot.d.ts +0 -47
- package/types/ufg/utils/take-dom-snapshots.d.ts +0 -27
- package/types/ufg/utils/uniquify-renderers.d.ts +0 -2
- package/types/universal/core-server-process.d.ts +0 -9
- package/types/universal/core-server.d.ts +0 -13
- package/types/universal/core.d.ts +0 -23
- package/types/universal/history.d.ts +0 -2
- package/types/universal/refer.d.ts +0 -8
- package/types/universal/spec-driver.d.ts +0 -11
- package/types/universal/types.d.ts +0 -188
- package/types/universal/ws-server.d.ts +0 -14
- package/types/utils/extract-ci-provider.d.ts +0 -1
- package/types/utils/format-results.d.ts +0 -16
- package/types/utils/separate-duplicate-results.d.ts +0 -2
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.makeCheckAndClose = void 0;
|
|
27
|
-
const driver_1 = require("@applitools/driver");
|
|
28
|
-
const take_screenshot_1 = require("../automation/utils/take-screenshot");
|
|
29
|
-
const take_dom_capture_1 = require("./utils/take-dom-capture");
|
|
30
|
-
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
31
|
-
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
32
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
33
|
-
function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: mainLogger, }) {
|
|
34
|
-
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
35
|
-
var _a, _b;
|
|
36
|
-
logger = logger.extend(mainLogger);
|
|
37
|
-
logger.log('Command "checkAndClose" is called with settings', settings);
|
|
38
|
-
if (!target)
|
|
39
|
-
throw new Error('Method was called with no target');
|
|
40
|
-
const baseEyes = await eyes.getBaseEyes({ logger });
|
|
41
|
-
if (!(0, driver_1.isDriver)(target, spec)) {
|
|
42
|
-
const baseSettings = settings;
|
|
43
|
-
await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target, settings: baseSettings, logger })));
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
47
|
-
const environment = await driver.getEnvironment();
|
|
48
|
-
if (settings.lazyLoad && environment.isWeb) {
|
|
49
|
-
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
50
|
-
context: driver.currentContext,
|
|
51
|
-
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
52
|
-
logger,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
let baseTarget;
|
|
56
|
-
let baseSettings;
|
|
57
|
-
const { elementReferencesToCalculate, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
|
|
58
|
-
if (environment.isWeb ||
|
|
59
|
-
!environment.isApplitoolsLib ||
|
|
60
|
-
settings.webview ||
|
|
61
|
-
settings.screenshotMode === 'default') {
|
|
62
|
-
const screenshot = await (0, take_screenshot_1.takeScreenshot)({
|
|
63
|
-
driver,
|
|
64
|
-
settings: { ...settings, regionsToCalculate: elementReferencesToCalculate },
|
|
65
|
-
logger,
|
|
66
|
-
});
|
|
67
|
-
baseTarget = {
|
|
68
|
-
name: await driver.getTitle(),
|
|
69
|
-
source: await driver.getUrl(),
|
|
70
|
-
image: await screenshot.image.toPng(),
|
|
71
|
-
locationInViewport: utils.geometry.location(screenshot.region),
|
|
72
|
-
isTransformed: true,
|
|
73
|
-
};
|
|
74
|
-
baseSettings = getBaseCheckSettings({ calculatedRegions: screenshot.calculatedRegions });
|
|
75
|
-
if (environment.isWeb && settings.sendDom) {
|
|
76
|
-
if (settings.fully)
|
|
77
|
-
await ((_a = screenshot.scrollingElement) === null || _a === void 0 ? void 0 : _a.setAttribute('data-applitools-scroll', 'true'));
|
|
78
|
-
else
|
|
79
|
-
await ((_b = screenshot.element) === null || _b === void 0 ? void 0 : _b.setAttribute('data-applitools-scroll', 'true'));
|
|
80
|
-
baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, settings: { proxy: eyes.test.eyesServer.proxy }, logger }).catch(() => undefined);
|
|
81
|
-
}
|
|
82
|
-
if (settings.pageId) {
|
|
83
|
-
const scrollingElement = await driver.mainContext.getScrollingElement();
|
|
84
|
-
const scrollingOffset = !scrollingElement || environment.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
|
|
85
|
-
baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
|
|
86
|
-
baseTarget.fullViewSize = scrollingElement
|
|
87
|
-
? await scrollingElement.getContentSize()
|
|
88
|
-
: await driver.getViewportSize();
|
|
89
|
-
}
|
|
90
|
-
await screenshot.restoreState();
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.eyesServer, driver, logger });
|
|
94
|
-
const screenshot = await nmlClient.takeScreenshot({
|
|
95
|
-
settings: { name: settings.name, waitBeforeCapture: settings.waitBeforeCapture, fully: settings.fully },
|
|
96
|
-
logger,
|
|
97
|
-
});
|
|
98
|
-
baseTarget = { image: screenshot.image, isTransformed: true };
|
|
99
|
-
baseSettings = getBaseCheckSettings({ calculatedRegions: [] });
|
|
100
|
-
}
|
|
101
|
-
await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target: baseTarget, settings: baseSettings, logger })));
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
exports.makeCheckAndClose = makeCheckAndClose;
|
package/dist/classic/check.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.makeCheck = void 0;
|
|
27
|
-
const driver_1 = require("@applitools/driver");
|
|
28
|
-
const take_screenshot_1 = require("../automation/utils/take-screenshot");
|
|
29
|
-
const take_dom_capture_1 = require("./utils/take-dom-capture");
|
|
30
|
-
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
31
|
-
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
32
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
33
|
-
function makeCheck({ eyes, target: defaultTarget, spec, logger: mainLogger, }) {
|
|
34
|
-
return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
35
|
-
var _a, _b, _c, _d;
|
|
36
|
-
logger = logger.extend(mainLogger);
|
|
37
|
-
logger.log('Command "check" is called with settings', settings);
|
|
38
|
-
if (!target)
|
|
39
|
-
throw new Error('Method was called with no target');
|
|
40
|
-
const baseEyes = await eyes.getBaseEyes();
|
|
41
|
-
if (!(0, driver_1.isDriver)(target, spec)) {
|
|
42
|
-
return (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target, settings: settings, logger })))).flat();
|
|
43
|
-
}
|
|
44
|
-
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
45
|
-
const environment = await driver.getEnvironment();
|
|
46
|
-
await driver.currentContext.setScrollingElement((_a = settings.scrollRootElement) !== null && _a !== void 0 ? _a : null);
|
|
47
|
-
if (settings.lazyLoad && environment.isWeb) {
|
|
48
|
-
if (settings.lazyLoad) {
|
|
49
|
-
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
50
|
-
context: driver.currentContext,
|
|
51
|
-
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
52
|
-
logger,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// TODO it actually could be different per eyes
|
|
57
|
-
const shouldRunOnce = true;
|
|
58
|
-
const finishAt = Date.now() + ((_b = settings.retryTimeout) !== null && _b !== void 0 ? _b : 0);
|
|
59
|
-
let baseTarget;
|
|
60
|
-
let baseSettings;
|
|
61
|
-
let results;
|
|
62
|
-
const { elementReferencesToCalculate, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
|
|
63
|
-
do {
|
|
64
|
-
if (environment.isWeb ||
|
|
65
|
-
!environment.isApplitoolsLib ||
|
|
66
|
-
settings.webview ||
|
|
67
|
-
settings.screenshotMode === 'default') {
|
|
68
|
-
const screenshot = await (0, take_screenshot_1.takeScreenshot)({
|
|
69
|
-
driver,
|
|
70
|
-
settings: { ...settings, regionsToCalculate: elementReferencesToCalculate },
|
|
71
|
-
logger,
|
|
72
|
-
});
|
|
73
|
-
baseTarget = {
|
|
74
|
-
name: await driver.getTitle(),
|
|
75
|
-
source: await driver.getUrl(),
|
|
76
|
-
image: await screenshot.image.toPng(),
|
|
77
|
-
locationInViewport: utils.geometry.location(screenshot.region),
|
|
78
|
-
isTransformed: true,
|
|
79
|
-
};
|
|
80
|
-
baseSettings = getBaseCheckSettings({ calculatedRegions: screenshot.calculatedRegions });
|
|
81
|
-
if (environment.isWeb && settings.sendDom) {
|
|
82
|
-
if (settings.fully)
|
|
83
|
-
await ((_c = screenshot.scrollingElement) === null || _c === void 0 ? void 0 : _c.setAttribute('data-applitools-scroll', 'true'));
|
|
84
|
-
else
|
|
85
|
-
await ((_d = screenshot.element) === null || _d === void 0 ? void 0 : _d.setAttribute('data-applitools-scroll', 'true'));
|
|
86
|
-
baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, settings: { proxy: eyes.test.eyesServer.proxy }, logger }).catch(() => undefined);
|
|
87
|
-
}
|
|
88
|
-
if (settings.pageId) {
|
|
89
|
-
const scrollingElement = await driver.mainContext.getScrollingElement();
|
|
90
|
-
const scrollingOffset = !scrollingElement || environment.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
|
|
91
|
-
baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
|
|
92
|
-
baseTarget.fullViewSize = scrollingElement
|
|
93
|
-
? await scrollingElement.getContentSize()
|
|
94
|
-
: await driver.getViewportSize();
|
|
95
|
-
}
|
|
96
|
-
await screenshot.restoreState();
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.eyesServer, driver, logger });
|
|
100
|
-
const screenshot = await nmlClient.takeScreenshot({
|
|
101
|
-
settings: { name: settings.name, waitBeforeCapture: settings.waitBeforeCapture, fully: settings.fully },
|
|
102
|
-
logger,
|
|
103
|
-
});
|
|
104
|
-
baseTarget = { image: screenshot.image, isTransformed: true };
|
|
105
|
-
baseSettings = getBaseCheckSettings({ calculatedRegions: [] });
|
|
106
|
-
}
|
|
107
|
-
baseSettings.ignoreMismatch = !shouldRunOnce;
|
|
108
|
-
results = (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target: baseTarget, settings: baseSettings, logger })))).flat();
|
|
109
|
-
} while (!shouldRunOnce && !results.some(result => result.asExpected) && Date.now() < finishAt);
|
|
110
|
-
if (!shouldRunOnce && !results.some(result => result.asExpected)) {
|
|
111
|
-
baseSettings.ignoreMismatch = false;
|
|
112
|
-
results = (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target: baseTarget, settings: baseSettings, logger })))).flat();
|
|
113
|
-
}
|
|
114
|
-
return results;
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
exports.makeCheck = makeCheck;
|
package/dist/classic/close.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeClose = void 0;
|
|
4
|
-
const driver_1 = require("@applitools/driver");
|
|
5
|
-
function makeClose({ eyes, target, spec, logger: mainLogger }) {
|
|
6
|
-
return async function close({ settings, logger = mainLogger, } = {}) {
|
|
7
|
-
logger = logger.extend(mainLogger);
|
|
8
|
-
logger.log('Command "close" is called with settings', settings);
|
|
9
|
-
settings !== null && settings !== void 0 ? settings : (settings = {});
|
|
10
|
-
if (!settings.testMetadata) {
|
|
11
|
-
try {
|
|
12
|
-
const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
|
|
13
|
-
settings.testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
logger.warn('Command "close" received an error during extracting driver metadata', error);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
const baseEyes = await eyes.getBaseEyes();
|
|
20
|
-
await Promise.all(baseEyes.map(baseEyes => baseEyes.close({ settings, logger })));
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
exports.makeClose = makeClose;
|
package/dist/classic/core.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.makeCore = void 0;
|
|
27
|
-
const logger_1 = require("@applitools/logger");
|
|
28
|
-
const core_base_1 = require("@applitools/core-base");
|
|
29
|
-
const get_viewport_size_1 = require("../automation/get-viewport-size");
|
|
30
|
-
const set_viewport_size_1 = require("../automation/set-viewport-size");
|
|
31
|
-
const locate_1 = require("../automation/locate");
|
|
32
|
-
const locate_text_1 = require("../automation/locate-text");
|
|
33
|
-
const extract_text_1 = require("../automation/extract-text");
|
|
34
|
-
const get_nml_client_1 = require("../automation/get-nml-client");
|
|
35
|
-
const open_eyes_1 = require("./open-eyes");
|
|
36
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
37
|
-
function makeCore({ spec, clients, base, agentId = 'core-classic', cwd = process.cwd(), logger: defaultLogger, }) {
|
|
38
|
-
const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: 'core-classic' } });
|
|
39
|
-
logger.log(`Core classic is initialized ${base ? 'with' : 'without'} custom base core`);
|
|
40
|
-
base !== null && base !== void 0 ? base : (base = (0, core_base_1.makeCore)({ agentId, cwd, logger }));
|
|
41
|
-
return utils.general.extend(base, core => {
|
|
42
|
-
return {
|
|
43
|
-
type: 'classic',
|
|
44
|
-
base: base,
|
|
45
|
-
getViewportSize: spec && (0, get_viewport_size_1.makeGetViewportSize)({ spec, logger }),
|
|
46
|
-
setViewportSize: spec && (0, set_viewport_size_1.makeSetViewportSize)({ spec, logger }),
|
|
47
|
-
getNMLClient: (0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
|
|
48
|
-
openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, core, logger }),
|
|
49
|
-
locate: (0, locate_1.makeLocate)({ spec, core, logger }),
|
|
50
|
-
locateText: (0, locate_text_1.makeLocateText)({ spec, core, logger }),
|
|
51
|
-
extractText: (0, extract_text_1.makeExtractText)({ spec, core, logger }),
|
|
52
|
-
};
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
exports.makeCore = makeCore;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.makeGetBaseEyes = void 0;
|
|
27
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function makeGetBaseEyes({ settings, eyes, base, logger: mainLogger }) {
|
|
29
|
-
const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, () => 'default');
|
|
30
|
-
if (base)
|
|
31
|
-
getBaseEyesWithCache.setCachedValue('default', Promise.resolve(base));
|
|
32
|
-
return getBaseEyesWithCache;
|
|
33
|
-
async function getBaseEyes({ logger = mainLogger } = {}) {
|
|
34
|
-
logger = logger.extend(mainLogger);
|
|
35
|
-
logger.log(`Command "getBaseEyes" is called with settings`, settings);
|
|
36
|
-
const baseEyes = await eyes.core.base.openEyes({ settings, logger });
|
|
37
|
-
return [baseEyes];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.makeGetBaseEyes = makeGetBaseEyes;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.makeOpenEyes = void 0;
|
|
27
|
-
const driver_1 = require("@applitools/driver");
|
|
28
|
-
const get_base_eyes_1 = require("./get-base-eyes");
|
|
29
|
-
const check_1 = require("./check");
|
|
30
|
-
const check_and_close_1 = require("./check-and-close");
|
|
31
|
-
const close_1 = require("./close");
|
|
32
|
-
const abort_1 = require("./abort");
|
|
33
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
34
|
-
function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
35
|
-
return async function openEyes({ target, settings, base, logger = mainLogger, }) {
|
|
36
|
-
var _a, _b, _c;
|
|
37
|
-
var _d;
|
|
38
|
-
logger = logger.extend(mainLogger);
|
|
39
|
-
logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), base ? 'predefined eyes' : '');
|
|
40
|
-
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
|
|
41
|
-
if (driver && !base) {
|
|
42
|
-
const environment = await driver.getEnvironment();
|
|
43
|
-
const currentContext = driver.currentContext;
|
|
44
|
-
(_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
|
|
45
|
-
if (environment.isEC) {
|
|
46
|
-
settings.environment.ecSessionId = (await driver.getSessionId());
|
|
47
|
-
}
|
|
48
|
-
if (environment.isWeb) {
|
|
49
|
-
(_b = (_d = settings.environment).userAgent) !== null && _b !== void 0 ? _b : (_d.userAgent = await driver.getUserAgentLegacy());
|
|
50
|
-
}
|
|
51
|
-
if (!settings.environment.deviceName && environment.deviceName) {
|
|
52
|
-
settings.environment.deviceName = environment.deviceName;
|
|
53
|
-
}
|
|
54
|
-
if (!settings.environment.os) {
|
|
55
|
-
if (environment.isNative && environment.platformName) {
|
|
56
|
-
settings.environment.os = environment.platformName;
|
|
57
|
-
if (!settings.keepPlatformNameAsIs) {
|
|
58
|
-
if (/^android/i.test(settings.environment.os)) {
|
|
59
|
-
settings.environment.os = `Android${settings.environment.os.slice(7)}`;
|
|
60
|
-
}
|
|
61
|
-
if (/^ios/i.test(settings.environment.os)) {
|
|
62
|
-
settings.environment.os = `iOS${settings.environment.os.slice(3)}`;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (environment.platformVersion) {
|
|
66
|
-
settings.environment.os += ` ${environment.platformVersion}`;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else if (environment.isReliable &&
|
|
70
|
-
environment.isChromium &&
|
|
71
|
-
((environment.isWindows && Number.parseInt(environment.browserVersion) >= 107) ||
|
|
72
|
-
(environment.isMac && Number.parseInt(environment.browserVersion) >= 90))) {
|
|
73
|
-
settings.environment.os = `${environment.platformName} ${(_c = environment.platformVersion) !== null && _c !== void 0 ? _c : ''}`.trim();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (!settings.environment.viewportSize || environment.isMobile) {
|
|
77
|
-
const viewport = await driver.getViewport();
|
|
78
|
-
const size = await driver.getViewportSize();
|
|
79
|
-
settings.environment.viewportSize = utils.geometry.scale(size, viewport.viewportScale);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
await driver.setViewportSize(settings.environment.viewportSize);
|
|
83
|
-
}
|
|
84
|
-
await currentContext.focus();
|
|
85
|
-
}
|
|
86
|
-
base !== null && base !== void 0 ? base : (base = [await core.base.openEyes({ settings, logger })]);
|
|
87
|
-
return utils.general.extend(base[0], eyes => ({
|
|
88
|
-
type: 'classic',
|
|
89
|
-
core,
|
|
90
|
-
getBaseEyes: (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, base, logger }),
|
|
91
|
-
check: (0, check_1.makeCheck)({ eyes, target: driver, spec, logger }),
|
|
92
|
-
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, logger }),
|
|
93
|
-
close: (0, close_1.makeClose)({ eyes, target: driver, spec, logger }),
|
|
94
|
-
abort: (0, abort_1.makeAbort)({ eyes, target: driver, spec, logger }),
|
|
95
|
-
}));
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
exports.makeOpenEyes = makeOpenEyes;
|
package/dist/classic/types.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("../automation/types"), exports);
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.takeDomCapture = void 0;
|
|
4
|
-
const req_1 = require("@applitools/req");
|
|
5
|
-
const { getCaptureDomPoll, getPollResult, getCaptureDomPollForIE, getPollResultForIE, } = require('@applitools/dom-capture');
|
|
6
|
-
async function takeDomCapture({ driver, settings, logger, }) {
|
|
7
|
-
var _a;
|
|
8
|
-
const environment = await driver.getEnvironment();
|
|
9
|
-
const features = await driver.getFeatures();
|
|
10
|
-
const isLegacyBrowser = environment.isIE || environment.isEdgeLegacy;
|
|
11
|
-
const arg = {
|
|
12
|
-
chunkByteLength: (_a = settings === null || settings === void 0 ? void 0 : settings.chunkByteLength) !== null && _a !== void 0 ? _a : (Number(process.env.APPLITOOLS_SCRIPT_RESULT_MAX_BYTE_LENGTH) ||
|
|
13
|
-
(environment.isIOS ? 100000 : 250 * 1024 * 1024)),
|
|
14
|
-
};
|
|
15
|
-
const scripts = {
|
|
16
|
-
main: features.canExecuteOnlyFunctionScripts
|
|
17
|
-
? require('@applitools/dom-capture').captureDomPoll
|
|
18
|
-
: `return (${isLegacyBrowser ? await getCaptureDomPollForIE() : await getCaptureDomPoll()}).apply(null, arguments);`,
|
|
19
|
-
poll: features.canExecuteOnlyFunctionScripts
|
|
20
|
-
? require('@applitools/dom-capture').pollResult
|
|
21
|
-
: `return (${isLegacyBrowser ? await getPollResultForIE() : await getPollResult()}).apply(null, arguments);`,
|
|
22
|
-
};
|
|
23
|
-
const url = await driver.getUrl();
|
|
24
|
-
const dom = await captureContextDom(driver.mainContext);
|
|
25
|
-
// TODO save debug DOM like we have for debug screenshots
|
|
26
|
-
return dom;
|
|
27
|
-
async function captureContextDom(context) {
|
|
28
|
-
var _a, _b;
|
|
29
|
-
const capture = await context.executePoll(scripts, {
|
|
30
|
-
main: arg,
|
|
31
|
-
poll: arg,
|
|
32
|
-
executionTimeout: (_a = settings === null || settings === void 0 ? void 0 : settings.executionTimeout) !== null && _a !== void 0 ? _a : 5 * 60 * 1000,
|
|
33
|
-
pollTimeout: (_b = settings === null || settings === void 0 ? void 0 : settings.pollTimeout) !== null && _b !== void 0 ? _b : 200,
|
|
34
|
-
});
|
|
35
|
-
if (!capture)
|
|
36
|
-
return '';
|
|
37
|
-
const raws = capture.split('\n');
|
|
38
|
-
const tokens = JSON.parse(raws[0]);
|
|
39
|
-
const cssEndIndex = raws.indexOf(tokens.separator);
|
|
40
|
-
const frameEndIndex = raws.indexOf(tokens.separator, cssEndIndex + 1);
|
|
41
|
-
let dom = raws[frameEndIndex + 1];
|
|
42
|
-
const cssResources = await Promise.all(raws.slice(1, cssEndIndex).reduce((cssResources, href) => {
|
|
43
|
-
return href ? cssResources.concat(fetchCssResource(new URL(href, url).href)) : cssResources;
|
|
44
|
-
}, []));
|
|
45
|
-
for (const { url, css } of cssResources) {
|
|
46
|
-
dom = dom.replace(`${tokens.cssStartToken}${url}${tokens.cssEndToken}`, css);
|
|
47
|
-
}
|
|
48
|
-
const framePaths = raws.slice(cssEndIndex + 1, frameEndIndex);
|
|
49
|
-
for (const xpaths of framePaths) {
|
|
50
|
-
if (!xpaths)
|
|
51
|
-
continue;
|
|
52
|
-
const references = xpaths.split(',').reduce((parent, selector) => {
|
|
53
|
-
return { reference: { type: 'xpath', selector }, parent };
|
|
54
|
-
}, null);
|
|
55
|
-
let contextDom;
|
|
56
|
-
try {
|
|
57
|
-
const frame = await context.context(references);
|
|
58
|
-
contextDom = await captureContextDom(frame);
|
|
59
|
-
}
|
|
60
|
-
catch (ignored) {
|
|
61
|
-
logger.log('Switching to frame failed');
|
|
62
|
-
contextDom = '';
|
|
63
|
-
}
|
|
64
|
-
dom = dom.replace(`${tokens.iframeStartToken}${xpaths}${tokens.iframeEndToken}`, contextDom);
|
|
65
|
-
}
|
|
66
|
-
return dom;
|
|
67
|
-
}
|
|
68
|
-
async function fetchCssResource(url) {
|
|
69
|
-
var _a;
|
|
70
|
-
logger.log(`Request to download css will be sent to the address "[GET]${url}"`);
|
|
71
|
-
try {
|
|
72
|
-
const response = await (0, req_1.req)(url, {
|
|
73
|
-
connectionTimeout: (_a = settings === null || settings === void 0 ? void 0 : settings.fetchTimeout) !== null && _a !== void 0 ? _a : 60000,
|
|
74
|
-
retry: {
|
|
75
|
-
limit: 1,
|
|
76
|
-
validate: ({ response, error }) => !!error || !response.ok,
|
|
77
|
-
},
|
|
78
|
-
proxy: settings === null || settings === void 0 ? void 0 : settings.proxy,
|
|
79
|
-
fetch: settings === null || settings === void 0 ? void 0 : settings.fetch,
|
|
80
|
-
});
|
|
81
|
-
const css = await response.text();
|
|
82
|
-
logger.log(`Request to download css that was sent to the address "[GET]${url}" respond with ${response.statusText}(${response.status})`, response.ok ? `and css of length ${css.length} chars` : '');
|
|
83
|
-
return { url, css: response.ok ? encodeJSON(css) : '' };
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
logger.error(`Request to download css that was sent to the address "[GET]${url}" failed with error`, error);
|
|
87
|
-
return { url, css: '' };
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
function encodeJSON(str) {
|
|
91
|
-
if (!str)
|
|
92
|
-
return '';
|
|
93
|
-
return Array.from(str).reduce((result, char) => {
|
|
94
|
-
switch (char) {
|
|
95
|
-
case '\\':
|
|
96
|
-
case '"':
|
|
97
|
-
case '/':
|
|
98
|
-
return result + '\\' + char;
|
|
99
|
-
case '\b':
|
|
100
|
-
return result + '\\b';
|
|
101
|
-
case '\t':
|
|
102
|
-
return result + '\\t';
|
|
103
|
-
case '\n':
|
|
104
|
-
return result + '\\n';
|
|
105
|
-
case '\f':
|
|
106
|
-
return result + '\\f';
|
|
107
|
-
case '\r':
|
|
108
|
-
return result + '\\r';
|
|
109
|
-
default:
|
|
110
|
-
if (char < ' ') {
|
|
111
|
-
const tmp = '000' + char.charCodeAt(0).toString(16);
|
|
112
|
-
return result + '\\u' + tmp.substring(tmp.length - 4);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
return result + char;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}, '');
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
exports.takeDomCapture = takeDomCapture;
|