@applitools/core 3.11.4 → 3.11.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/automation/utils/wait-for-lazy-load.js +6 -5
- package/dist/ufg/check-and-close.js +1 -12
- package/dist/ufg/check.js +1 -12
- package/dist/ufg/utils/take-dom-snapshots.js +16 -9
- package/package.json +9 -9
- package/types/automation/types.d.ts +6 -5
- package/types/automation/utils/wait-for-lazy-load.d.ts +5 -8
- package/types/ufg/utils/take-dom-snapshots.d.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.11.6](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.11.5...js/core@3.11.6) (2023-10-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* move lazyload option to take-dom-snapshots ([#1947](https://github.com/applitools/eyes.sdk.javascript1/issues/1947)) ([1833613](https://github.com/applitools/eyes.sdk.javascript1/commit/18336131048733d6d31d31ea4fa959c299320bfe))
|
|
9
|
+
|
|
10
|
+
## [3.11.5](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.11.4...js/core@3.11.5) (2023-09-29)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Dependencies
|
|
14
|
+
|
|
15
|
+
* @applitools/spec-driver-webdriver bumped to 1.0.47
|
|
16
|
+
|
|
17
|
+
* @applitools/spec-driver-selenium bumped to 1.5.61
|
|
18
|
+
|
|
19
|
+
* @applitools/spec-driver-puppeteer bumped to 1.2.3
|
|
20
|
+
|
|
21
|
+
* @applitools/driver bumped to 1.14.3
|
|
22
|
+
#### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* force native on get environment ([#1939](https://github.com/applitools/eyes.sdk.javascript1/issues/1939)) ([f42854e](https://github.com/applitools/eyes.sdk.javascript1/commit/f42854eacc769751447204143cb4d50113edc732))
|
|
25
|
+
* @applitools/screenshoter bumped to 3.8.13
|
|
26
|
+
#### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* force native on get environment ([#1939](https://github.com/applitools/eyes.sdk.javascript1/issues/1939)) ([f42854e](https://github.com/applitools/eyes.sdk.javascript1/commit/f42854eacc769751447204143cb4d50113edc732))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
* @applitools/nml-client bumped to 1.5.13
|
|
33
|
+
|
|
34
|
+
* @applitools/ec-client bumped to 1.7.12
|
|
35
|
+
#### Bug Fixes
|
|
36
|
+
|
|
37
|
+
* change expiration time of the tunnel ([c019241](https://github.com/applitools/eyes.sdk.javascript1/commit/c0192411410135b23f3ae47dd62fbef67be66f1a))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
#### Code Refactoring
|
|
41
|
+
|
|
42
|
+
* refactored spec driver interface ([#1839](https://github.com/applitools/eyes.sdk.javascript1/issues/1839)) ([aa49ec2](https://github.com/applitools/eyes.sdk.javascript1/commit/aa49ec2a7d14b8529acc3a8a4c2baecfa113d98a))
|
|
43
|
+
* use Uint8Array instead of Buffer for binary data representation ([#1928](https://github.com/applitools/eyes.sdk.javascript1/issues/1928)) ([d1472ab](https://github.com/applitools/eyes.sdk.javascript1/commit/d1472ab8fd49e9a240e99a44dbf1d180b6c7a54b))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
* @applitools/core-base bumped to 1.7.1
|
|
48
|
+
#### Bug Fixes
|
|
49
|
+
|
|
50
|
+
* send domMapping payload with correct content encoding ([2bc8e39](https://github.com/applitools/eyes.sdk.javascript1/commit/2bc8e390de1d147d84d1de24df337b8652547b6a))
|
|
51
|
+
|
|
3
52
|
## [3.11.4](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.11.3...js/core@3.11.4) (2023-09-28)
|
|
4
53
|
|
|
5
54
|
|
|
@@ -3,20 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.waitForLazyLoad = void 0;
|
|
4
4
|
const { lazyLoad } = require('@applitools/snippets');
|
|
5
5
|
async function waitForLazyLoad({ context, settings, logger, }) {
|
|
6
|
-
var _a, _b
|
|
6
|
+
var _a, _b;
|
|
7
7
|
logger.log('lazy loading the page before capturing a screenshot');
|
|
8
|
+
const { scrollLength = 300, waitingTime = 2000, maxAmountToScroll = 15000, } = typeof settings === 'boolean' ? {} : settings;
|
|
8
9
|
await context.executePoll(lazyLoad, {
|
|
9
10
|
main: [
|
|
10
11
|
await context.getScrollingElement(),
|
|
11
12
|
{
|
|
12
|
-
scrollLength:
|
|
13
|
-
waitingTime:
|
|
14
|
-
maxAmountToScroll:
|
|
13
|
+
scrollLength: scrollLength,
|
|
14
|
+
waitingTime: waitingTime,
|
|
15
|
+
maxAmountToScroll: maxAmountToScroll,
|
|
15
16
|
},
|
|
16
17
|
],
|
|
17
18
|
poll: [],
|
|
18
19
|
executionTimeout: 5 * 60 * 1000,
|
|
19
|
-
pollTimeout: (
|
|
20
|
+
pollTimeout: (_b = (_a = settings.pollTimeout) !== null && _a !== void 0 ? _a : settings.waitingTime) !== null && _b !== void 0 ? _b : 2000,
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
23
|
exports.waitForLazyLoad = waitForLazyLoad;
|
|
@@ -29,7 +29,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.makeCheckAndClose = void 0;
|
|
30
30
|
const driver_1 = require("@applitools/driver");
|
|
31
31
|
const take_dom_snapshots_1 = require("./utils/take-dom-snapshots");
|
|
32
|
-
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
33
32
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
34
33
|
const uniquify_renderers_1 = require("../automation/utils/uniquify-renderers");
|
|
35
34
|
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
@@ -79,23 +78,13 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
79
78
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
80
79
|
renderers: uniqueRenderers,
|
|
81
80
|
skipResources: ufgClient.getCachedResourceUrls(),
|
|
81
|
+
lazyLoad: settings.lazyLoad,
|
|
82
82
|
calculateRegionsOptions: {
|
|
83
83
|
elementReferencesToCalculate,
|
|
84
84
|
elementReferenceToTarget,
|
|
85
85
|
scrollRootElement: settings.scrollRootElement,
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
|
-
hooks: {
|
|
89
|
-
async beforeSnapshots() {
|
|
90
|
-
if (settings.lazyLoad && environment.isWeb) {
|
|
91
|
-
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
92
|
-
context: driver.currentContext,
|
|
93
|
-
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
94
|
-
logger,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
88
|
provides: {
|
|
100
89
|
getChromeEmulationDevices: ufgClient.getChromeEmulationDevices,
|
|
101
90
|
getIOSDevices: ufgClient.getIOSDevices,
|
package/dist/ufg/check.js
CHANGED
|
@@ -29,7 +29,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.makeCheck = void 0;
|
|
30
30
|
const driver_1 = require("@applitools/driver");
|
|
31
31
|
const take_dom_snapshots_1 = require("./utils/take-dom-snapshots");
|
|
32
|
-
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
33
32
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
34
33
|
const uniquify_renderers_1 = require("../automation/utils/uniquify-renderers");
|
|
35
34
|
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
@@ -79,23 +78,13 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
79
78
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
80
79
|
renderers: uniqueRenderers,
|
|
81
80
|
skipResources: ufgClient.getCachedResourceUrls(),
|
|
81
|
+
lazyLoad: settings.lazyLoad,
|
|
82
82
|
calculateRegionsOptions: {
|
|
83
83
|
elementReferencesToCalculate,
|
|
84
84
|
elementReferenceToTarget,
|
|
85
85
|
scrollRootElement: settings.scrollRootElement,
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
|
-
hooks: {
|
|
89
|
-
async beforeSnapshots() {
|
|
90
|
-
if (settings.lazyLoad && environment.isWeb) {
|
|
91
|
-
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
92
|
-
context: driver.currentContext,
|
|
93
|
-
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
94
|
-
logger,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
88
|
provides: {
|
|
100
89
|
getChromeEmulationDevices: ufgClient.getChromeEmulationDevices,
|
|
101
90
|
getIOSDevices: ufgClient.getIOSDevices,
|
|
@@ -34,9 +34,10 @@ const take_dom_snapshot_1 = require("./take-dom-snapshot");
|
|
|
34
34
|
const utils = __importStar(require("@applitools/utils"));
|
|
35
35
|
const chalk_1 = __importDefault(require("chalk"));
|
|
36
36
|
const calculate_regions_1 = require("./calculate-regions");
|
|
37
|
+
const wait_for_lazy_load_1 = require("../../automation/utils/wait-for-lazy-load");
|
|
37
38
|
__exportStar(require("./take-dom-snapshot"), exports);
|
|
38
39
|
async function takeDomSnapshots({ driver, settings, hooks, provides, logger, }) {
|
|
39
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
40
41
|
const currentContext = driver.currentContext;
|
|
41
42
|
let calculateRegionsResults = {};
|
|
42
43
|
const waitBeforeCapture = async () => {
|
|
@@ -47,8 +48,14 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
47
48
|
await utils.general.sleep(settings.waitBeforeCapture);
|
|
48
49
|
}
|
|
49
50
|
};
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
if (settings.lazyLoad) {
|
|
52
|
+
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
53
|
+
context: driver.currentContext,
|
|
54
|
+
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
55
|
+
logger,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (!((_a = settings.layoutBreakpoints) === null || _a === void 0 ? void 0 : _a.reload) && settings.calculateRegionsOptions) {
|
|
52
59
|
calculateRegionsResults = await (0, calculate_regions_1.calculateRegions)({
|
|
53
60
|
...settings.calculateRegionsOptions,
|
|
54
61
|
driver,
|
|
@@ -56,13 +63,13 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
56
63
|
}
|
|
57
64
|
if (!settings.layoutBreakpoints) {
|
|
58
65
|
logger.log(`taking single dom snapshot`);
|
|
59
|
-
await ((
|
|
66
|
+
await ((_b = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _b === void 0 ? void 0 : _b.call(hooks));
|
|
60
67
|
await waitBeforeCapture();
|
|
61
68
|
const snapshot = await (0, take_dom_snapshot_1.takeDomSnapshot)({ context: currentContext, settings, logger });
|
|
62
|
-
await ((
|
|
69
|
+
await ((_c = calculateRegionsResults === null || calculateRegionsResults === void 0 ? void 0 : calculateRegionsResults.cleanupGeneratedSelectors) === null || _c === void 0 ? void 0 : _c.call(calculateRegionsResults));
|
|
63
70
|
return Array(settings.renderers.length).fill({ snapshot, ...calculateRegionsResults });
|
|
64
71
|
}
|
|
65
|
-
const isStrictBreakpoints = utils.types.isArray((
|
|
72
|
+
const isStrictBreakpoints = utils.types.isArray((_d = settings.layoutBreakpoints) === null || _d === void 0 ? void 0 : _d.breakpoints);
|
|
66
73
|
const requiredWidths = await settings.renderers.reduce(async (prev, renderer, index) => {
|
|
67
74
|
const { name, width } = (await extractRendererInfo({ renderer }));
|
|
68
75
|
const requiredWidths = await prev;
|
|
@@ -90,7 +97,7 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
90
97
|
const snapshotsResults = Array(settings.renderers.length);
|
|
91
98
|
if (requiredWidths.has(viewportSize.width)) {
|
|
92
99
|
logger.log(`taking dom snapshot for existing width ${viewportSize.width}`);
|
|
93
|
-
await ((
|
|
100
|
+
await ((_e = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _e === void 0 ? void 0 : _e.call(hooks));
|
|
94
101
|
await waitBeforeCapture();
|
|
95
102
|
const snapshot = await (0, take_dom_snapshot_1.takeDomSnapshot)({ context: currentContext, settings, logger });
|
|
96
103
|
requiredWidths.get(viewportSize.width).forEach(({ index }) => {
|
|
@@ -128,7 +135,7 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
128
135
|
logger.log(message);
|
|
129
136
|
}
|
|
130
137
|
}
|
|
131
|
-
await ((
|
|
138
|
+
await ((_f = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _f === void 0 ? void 0 : _f.call(hooks));
|
|
132
139
|
await waitBeforeCapture();
|
|
133
140
|
const snapshot = await (0, take_dom_snapshot_1.takeDomSnapshot)({ context: currentContext, settings, logger });
|
|
134
141
|
browsersInfo.forEach(({ index }) => {
|
|
@@ -141,7 +148,7 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
141
148
|
await waitBeforeCapture();
|
|
142
149
|
}
|
|
143
150
|
else {
|
|
144
|
-
(
|
|
151
|
+
(_g = calculateRegionsResults === null || calculateRegionsResults === void 0 ? void 0 : calculateRegionsResults.cleanupGeneratedSelectors) === null || _g === void 0 ? void 0 : _g.call(calculateRegionsResults);
|
|
145
152
|
}
|
|
146
153
|
return snapshotsResults;
|
|
147
154
|
function calculateBreakpoint({ breakpoints, value }) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.6",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -65,18 +65,18 @@
|
|
|
65
65
|
"compress": "GZip"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@applitools/core-base": "1.7.
|
|
68
|
+
"@applitools/core-base": "1.7.1",
|
|
69
69
|
"@applitools/dom-capture": "11.2.3",
|
|
70
70
|
"@applitools/dom-snapshot": "4.7.11",
|
|
71
|
-
"@applitools/driver": "1.14.
|
|
72
|
-
"@applitools/ec-client": "1.7.
|
|
71
|
+
"@applitools/driver": "1.14.3",
|
|
72
|
+
"@applitools/ec-client": "1.7.12",
|
|
73
73
|
"@applitools/logger": "2.0.11",
|
|
74
|
-
"@applitools/nml-client": "1.5.
|
|
74
|
+
"@applitools/nml-client": "1.5.13",
|
|
75
75
|
"@applitools/req": "1.6.1",
|
|
76
|
-
"@applitools/screenshoter": "3.8.
|
|
76
|
+
"@applitools/screenshoter": "3.8.13",
|
|
77
77
|
"@applitools/snippets": "2.4.24",
|
|
78
78
|
"@applitools/socket": "1.1.11",
|
|
79
|
-
"@applitools/spec-driver-webdriver": "1.0.
|
|
79
|
+
"@applitools/spec-driver-webdriver": "1.0.47",
|
|
80
80
|
"@applitools/ufg-client": "1.9.3",
|
|
81
81
|
"@applitools/utils": "1.6.1",
|
|
82
82
|
"@types/ws": "8.5.5",
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@applitools/bongo": "^5.6.1",
|
|
92
|
-
"@applitools/spec-driver-puppeteer": "^1.2.
|
|
93
|
-
"@applitools/spec-driver-selenium": "^1.5.
|
|
92
|
+
"@applitools/spec-driver-puppeteer": "^1.2.3",
|
|
93
|
+
"@applitools/spec-driver-selenium": "^1.5.61",
|
|
94
94
|
"@applitools/test-server": "^1.2.2",
|
|
95
95
|
"@applitools/test-utils": "^1.5.17",
|
|
96
96
|
"@applitools/tunnel-client": "^1.2.3",
|
|
@@ -118,6 +118,11 @@ export type EyesStorage = Map<string, {
|
|
|
118
118
|
export interface GetBaseEyesSettings {
|
|
119
119
|
renderer: Renderer;
|
|
120
120
|
}
|
|
121
|
+
export type LazyLoadOptions = {
|
|
122
|
+
scrollLength?: number;
|
|
123
|
+
waitingTime?: number;
|
|
124
|
+
maxAmountToScroll?: number;
|
|
125
|
+
};
|
|
121
126
|
export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
|
|
122
127
|
webview?: boolean | string;
|
|
123
128
|
frames?: (ContextReference<TSpec> | {
|
|
@@ -136,11 +141,7 @@ export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.Ima
|
|
|
136
141
|
};
|
|
137
142
|
waitBeforeCapture?: number;
|
|
138
143
|
waitBetweenStitches?: number;
|
|
139
|
-
lazyLoad?: boolean |
|
|
140
|
-
scrollLength?: number;
|
|
141
|
-
waitingTime?: number;
|
|
142
|
-
maxAmountToScroll?: number;
|
|
143
|
-
};
|
|
144
|
+
lazyLoad?: boolean | LazyLoadOptions;
|
|
144
145
|
sendDom?: boolean;
|
|
145
146
|
}
|
|
146
147
|
export type LocateSettings<TLocator extends string, TSpec extends SpecType> = BaseCore.LocateSettings<TLocator, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { type Logger } from '@applitools/logger';
|
|
2
2
|
import { type SpecType, type Context } from '@applitools/driver';
|
|
3
|
-
|
|
4
|
-
scrollLength?: number;
|
|
5
|
-
waitingTime?: number;
|
|
6
|
-
maxAmountToScroll?: number;
|
|
7
|
-
executionTimeout?: number;
|
|
8
|
-
pollTimeout?: number;
|
|
9
|
-
};
|
|
3
|
+
import { type LazyLoadOptions } from '../types';
|
|
10
4
|
export declare function waitForLazyLoad<TSpec extends SpecType>({ context, settings, logger, }: {
|
|
11
5
|
context: Context<TSpec>;
|
|
12
|
-
settings:
|
|
6
|
+
settings: LazyLoadOptions & {
|
|
7
|
+
pollTimeout?: number;
|
|
8
|
+
waitingTime?: number;
|
|
9
|
+
};
|
|
13
10
|
logger: Logger;
|
|
14
11
|
}): Promise<void>;
|
|
@@ -5,6 +5,7 @@ import { type DomSnapshot, type Renderer } from '@applitools/ufg-client';
|
|
|
5
5
|
import { type DomSnapshotSettings } from './take-dom-snapshot';
|
|
6
6
|
import { type CalculateRegionsOptions } from './calculate-regions';
|
|
7
7
|
import { SnapshotResult } from '../types';
|
|
8
|
+
import { type LazyLoadOptions } from '../types';
|
|
8
9
|
export * from './take-dom-snapshot';
|
|
9
10
|
export type DomSnapshotsSettings = DomSnapshotSettings & {
|
|
10
11
|
renderers: Renderer[];
|
|
@@ -14,12 +15,12 @@ export type DomSnapshotsSettings = DomSnapshotSettings & {
|
|
|
14
15
|
reload?: boolean;
|
|
15
16
|
};
|
|
16
17
|
calculateRegionsOptions?: CalculateRegionsOptions;
|
|
18
|
+
lazyLoad?: boolean | LazyLoadOptions;
|
|
17
19
|
};
|
|
18
20
|
export declare function takeDomSnapshots<TSpec extends SpecType>({ driver, settings, hooks, provides, logger, }: {
|
|
19
21
|
driver: Driver<TSpec>;
|
|
20
22
|
settings: DomSnapshotsSettings;
|
|
21
23
|
hooks?: {
|
|
22
|
-
beforeSnapshots?(): void | Promise<void>;
|
|
23
24
|
beforeEachSnapshot?(): void | Promise<void>;
|
|
24
25
|
};
|
|
25
26
|
provides?: {
|