@applitools/core 4.0.1 → 4.0.2
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
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.0.2](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@4.0.1...js/core@4.0.2) (2023-10-30)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* generate safe selectors as close as possible to taking dom snapshot ([#1987](https://github.com/applitools/eyes.sdk.javascript1/issues/1987)) ([102208b](https://github.com/applitools/eyes.sdk.javascript1/commit/102208b909c0b149808f6e4c24a0a662305b1b78))
|
|
9
|
+
|
|
3
10
|
## [4.0.1](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@4.0.0...js/core@4.0.1) (2023-10-25)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -27,10 +27,11 @@ exports.extractCrossFrames = exports.takeDomSnapshot = void 0;
|
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
28
|
const { getProcessPagePoll, getPollResult, getProcessPagePollForIE, getPollResultForIE, } = require('@applitools/dom-snapshot');
|
|
29
29
|
async function takeDomSnapshot({ context, settings, logger, }) {
|
|
30
|
+
var _a;
|
|
30
31
|
const driver = context.driver;
|
|
31
32
|
const environment = await driver.getEnvironment();
|
|
32
33
|
const features = await driver.getFeatures();
|
|
33
|
-
const cookies = features.allCookies ? await driver.getCookies().catch(() => []) : [];
|
|
34
|
+
const cookies = ((_a = settings === null || settings === void 0 ? void 0 : settings.cookies) !== null && _a !== void 0 ? _a : features.allCookies) ? await driver.getCookies().catch(() => []) : [];
|
|
34
35
|
const snapshot = transformRawDomSnapshot(await takeContextDomSnapshot({ context }));
|
|
35
36
|
snapshot.cookies = cookies;
|
|
36
37
|
return snapshot;
|
|
@@ -37,7 +37,10 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
37
37
|
const utils = __importStar(require("@applitools/utils"));
|
|
38
38
|
__exportStar(require("./take-dom-snapshot"), exports);
|
|
39
39
|
async function takeDomSnapshots({ driver, settings, hooks, provides, logger, }) {
|
|
40
|
-
var _a, _b, _c, _d, _e, _f
|
|
40
|
+
var _a, _b, _c, _d, _e, _f;
|
|
41
|
+
// calculating cookies here once so that we (a) don't do it for each dom snapshot, and (b) do it before generating safe selectors
|
|
42
|
+
const features = await driver.getFeatures();
|
|
43
|
+
settings.cookies = features.allCookies ? await driver.getCookies().catch(() => []) : [];
|
|
41
44
|
const currentContext = driver.currentContext;
|
|
42
45
|
let calculateRegionsResults = {};
|
|
43
46
|
const waitBeforeCapture = async () => {
|
|
@@ -55,21 +58,22 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
55
58
|
logger,
|
|
56
59
|
});
|
|
57
60
|
}
|
|
58
|
-
if (!((_a = settings.layoutBreakpoints) === null || _a === void 0 ? void 0 : _a.reload) && settings.calculateRegionsOptions) {
|
|
59
|
-
calculateRegionsResults = await (0, calculate_regions_1.calculateRegions)({
|
|
60
|
-
...settings.calculateRegionsOptions,
|
|
61
|
-
driver,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
61
|
if (!settings.layoutBreakpoints) {
|
|
65
62
|
logger.log(`taking single dom snapshot`);
|
|
66
|
-
await ((
|
|
63
|
+
await ((_a = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _a === void 0 ? void 0 : _a.call(hooks));
|
|
67
64
|
await waitBeforeCapture();
|
|
65
|
+
// it's important that we calculate safe selectors as close as possible to taking the dom snapshot
|
|
66
|
+
if (settings.calculateRegionsOptions) {
|
|
67
|
+
calculateRegionsResults = await (0, calculate_regions_1.calculateRegions)({
|
|
68
|
+
...settings.calculateRegionsOptions,
|
|
69
|
+
driver,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
68
72
|
const snapshot = await (0, take_dom_snapshot_1.takeDomSnapshot)({ context: currentContext, settings, logger });
|
|
69
|
-
await ((
|
|
73
|
+
await ((_b = calculateRegionsResults === null || calculateRegionsResults === void 0 ? void 0 : calculateRegionsResults.cleanupGeneratedSelectors) === null || _b === void 0 ? void 0 : _b.call(calculateRegionsResults));
|
|
70
74
|
return Array(settings.environments.length).fill({ snapshot, ...calculateRegionsResults });
|
|
71
75
|
}
|
|
72
|
-
const isStrictBreakpoints = utils.types.isArray((
|
|
76
|
+
const isStrictBreakpoints = utils.types.isArray((_c = settings.layoutBreakpoints) === null || _c === void 0 ? void 0 : _c.breakpoints);
|
|
73
77
|
const requiredWidths = await settings.environments.reduce(async (prev, environment, index) => {
|
|
74
78
|
const { name, width } = (await extractEnvironmentInfo(environment));
|
|
75
79
|
const requiredWidths = await prev;
|
|
@@ -97,8 +101,15 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
97
101
|
const snapshotsResults = Array(settings.environments.length);
|
|
98
102
|
if (requiredWidths.has(viewportSize.width)) {
|
|
99
103
|
logger.log(`taking dom snapshot for existing width ${viewportSize.width}`);
|
|
100
|
-
await ((
|
|
104
|
+
await ((_d = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _d === void 0 ? void 0 : _d.call(hooks));
|
|
101
105
|
await waitBeforeCapture();
|
|
106
|
+
// it's important that we calculate safe selectors as close as possible to taking the dom snapshot
|
|
107
|
+
if (settings.calculateRegionsOptions) {
|
|
108
|
+
calculateRegionsResults = await (0, calculate_regions_1.calculateRegions)({
|
|
109
|
+
...settings.calculateRegionsOptions,
|
|
110
|
+
driver,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
102
113
|
const snapshot = await (0, take_dom_snapshot_1.takeDomSnapshot)({ context: currentContext, settings, logger });
|
|
103
114
|
requiredWidths.get(viewportSize.width).forEach(({ index }) => {
|
|
104
115
|
snapshotsResults[index] = { snapshot, ...calculateRegionsResults };
|
|
@@ -108,16 +119,6 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
108
119
|
logger.log(`taking dom snapshot for width ${requiredWidth}`);
|
|
109
120
|
try {
|
|
110
121
|
await driver.setViewportSize({ width: requiredWidth, height: viewportSize.height });
|
|
111
|
-
if (settings.layoutBreakpoints.reload) {
|
|
112
|
-
await driver.reloadPage();
|
|
113
|
-
await waitBeforeCapture();
|
|
114
|
-
if (settings.calculateRegionsOptions) {
|
|
115
|
-
calculateRegionsResults = await (0, calculate_regions_1.calculateRegions)({
|
|
116
|
-
...settings.calculateRegionsOptions,
|
|
117
|
-
driver,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
122
|
}
|
|
122
123
|
catch (err) {
|
|
123
124
|
logger.error(err);
|
|
@@ -135,8 +136,20 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
135
136
|
logger.log(message);
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
|
-
|
|
139
|
+
if (settings.layoutBreakpoints.reload) {
|
|
140
|
+
await driver.reloadPage();
|
|
141
|
+
}
|
|
142
|
+
await ((_e = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _e === void 0 ? void 0 : _e.call(hooks));
|
|
139
143
|
await waitBeforeCapture();
|
|
144
|
+
if (settings.layoutBreakpoints.reload) {
|
|
145
|
+
// it's important that we calculate safe selectors as close as possible to taking the dom snapshot
|
|
146
|
+
if (settings.calculateRegionsOptions) {
|
|
147
|
+
calculateRegionsResults = await (0, calculate_regions_1.calculateRegions)({
|
|
148
|
+
...settings.calculateRegionsOptions,
|
|
149
|
+
driver,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
140
153
|
const snapshot = await (0, take_dom_snapshot_1.takeDomSnapshot)({ context: currentContext, settings, logger });
|
|
141
154
|
browsersInfo.forEach(({ index }) => {
|
|
142
155
|
snapshotsResults[index] = { snapshot, ...calculateRegionsResults };
|
|
@@ -148,7 +161,7 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
148
161
|
await waitBeforeCapture();
|
|
149
162
|
}
|
|
150
163
|
else {
|
|
151
|
-
(
|
|
164
|
+
(_f = calculateRegionsResults === null || calculateRegionsResults === void 0 ? void 0 : calculateRegionsResults.cleanupGeneratedSelectors) === null || _f === void 0 ? void 0 : _f.call(calculateRegionsResults);
|
|
152
165
|
}
|
|
153
166
|
return snapshotsResults;
|
|
154
167
|
function calculateBreakpoint({ breakpoints, value }) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -101,7 +101,6 @@
|
|
|
101
101
|
"@types/node": "^12.20.55",
|
|
102
102
|
"@types/selenium-webdriver": "^4.1.2",
|
|
103
103
|
"@types/yargs": "^17.0.22",
|
|
104
|
-
"chromedriver": "^115.0.1",
|
|
105
104
|
"nock": "^13.3.2",
|
|
106
105
|
"png-async": "^0.9.4",
|
|
107
106
|
"puppeteer": "^19.11.1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Logger } from '@applitools/logger';
|
|
2
|
-
import { type SpecType, type Context } from '@applitools/driver';
|
|
2
|
+
import { type SpecType, type Context, type Cookie } from '@applitools/driver';
|
|
3
3
|
import { type DomSnapshot } from '@applitools/ufg-client';
|
|
4
4
|
export type RawDomSnapshot = {
|
|
5
5
|
url: string;
|
|
@@ -30,6 +30,7 @@ export type DomSnapshotSettings = {
|
|
|
30
30
|
executionTimeout?: number;
|
|
31
31
|
pollTimeout?: number;
|
|
32
32
|
showLogs?: boolean;
|
|
33
|
+
cookies?: Cookie[];
|
|
33
34
|
};
|
|
34
35
|
export declare function takeDomSnapshot<TSpec extends SpecType>({ context, settings, logger, }: {
|
|
35
36
|
context: Context<TSpec>;
|