@applitools/core 4.52.0 → 4.53.1
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 +122 -0
- package/dist/autonomous/calculate-estimated-time.js +7 -6
- package/dist/check.js +4 -2
- package/dist/classic/check.js +6 -6
- package/dist/offline/run-offline-snapshots.js +5 -2
- package/package.json +18 -18
- package/types/autonomous/calculate-estimated-time.d.ts +1 -1
- package/types/classic/check-and-close.d.ts +1 -1
- package/types/classic/types.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,127 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.53.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.53.0...js/core@4.53.1) (2025-12-01)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* handle CSS variables in Shadow DOM adopted stylesheets | FLD-3790 ([#3381](https://github.com/Applitools-Dev/sdk/issues/3381)) ([b2bfca3](https://github.com/Applitools-Dev/sdk/commit/b2bfca3cd706cd996d78d51c6242148fbb8ce741))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* @applitools/utils bumped to 1.14.1
|
|
14
|
+
#### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* setup script compatibility with ESM | AD-11756 ([#3363](https://github.com/Applitools-Dev/sdk/issues/3363)) ([d1222f4](https://github.com/Applitools-Dev/sdk/commit/d1222f40a74ab62782bebeeb0cf899aac3f3d3b6))
|
|
17
|
+
* @applitools/dom-snapshot bumped to 4.15.2
|
|
18
|
+
#### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* handle CSS variables in Shadow DOM adopted stylesheets | FLD-3790 ([#3381](https://github.com/Applitools-Dev/sdk/issues/3381)) ([b2bfca3](https://github.com/Applitools-Dev/sdk/commit/b2bfca3cd706cd996d78d51c6242148fbb8ce741))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
* @applitools/logger bumped to 2.2.7
|
|
25
|
+
|
|
26
|
+
* @applitools/socket bumped to 1.3.8
|
|
27
|
+
|
|
28
|
+
* @applitools/req bumped to 1.8.7
|
|
29
|
+
|
|
30
|
+
* @applitools/image bumped to 1.2.6
|
|
31
|
+
|
|
32
|
+
* @applitools/driver bumped to 1.24.3
|
|
33
|
+
|
|
34
|
+
* @applitools/spec-driver-webdriver bumped to 1.5.3
|
|
35
|
+
|
|
36
|
+
* @applitools/spec-driver-selenium bumped to 1.7.9
|
|
37
|
+
|
|
38
|
+
* @applitools/spec-driver-puppeteer bumped to 1.6.9
|
|
39
|
+
|
|
40
|
+
* @applitools/screenshoter bumped to 3.12.10
|
|
41
|
+
|
|
42
|
+
* @applitools/nml-client bumped to 1.11.12
|
|
43
|
+
|
|
44
|
+
* @applitools/tunnel-client bumped to 1.11.5
|
|
45
|
+
|
|
46
|
+
* @applitools/ufg-client bumped to 1.18.3
|
|
47
|
+
|
|
48
|
+
* @applitools/core-base bumped to 1.30.1
|
|
49
|
+
|
|
50
|
+
* @applitools/ec-client bumped to 1.12.14
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## [4.53.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.52.0...js/core@4.53.0) (2025-11-19)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### Features
|
|
57
|
+
|
|
58
|
+
* disable heartbeats whenever no tests are running ([#3344](https://github.com/Applitools-Dev/sdk/issues/3344)) ([b66d28a](https://github.com/Applitools-Dev/sdk/commit/b66d28a7a382f26b68de70c8633c027cb4bdf225))
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Bug Fixes
|
|
62
|
+
|
|
63
|
+
* better nml error messages ([#3311](https://github.com/Applitools-Dev/sdk/issues/3311)) ([3deea01](https://github.com/Applitools-Dev/sdk/commit/3deea0130636c44573adc919b95c1c99e6d194f1))
|
|
64
|
+
* fails to create test with coded dynamic region | AD-11074 ([#3361](https://github.com/Applitools-Dev/sdk/issues/3361)) ([7f8c8cd](https://github.com/Applitools-Dev/sdk/commit/7f8c8cd85c0cd2e5861cd33fbc29c465903258d5))
|
|
65
|
+
* resolved an issue with `matchTimeout` changing `retryTimeout` ([f656f59](https://github.com/Applitools-Dev/sdk/commit/f656f59dbfb7c41fdb569fbc56d2e9daecefb854))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Dependencies
|
|
69
|
+
|
|
70
|
+
* @applitools/utils bumped to 1.14.0
|
|
71
|
+
#### Features
|
|
72
|
+
|
|
73
|
+
* disable heartbeats whenever no tests are running ([#3344](https://github.com/Applitools-Dev/sdk/issues/3344)) ([b66d28a](https://github.com/Applitools-Dev/sdk/commit/b66d28a7a382f26b68de70c8633c027cb4bdf225))
|
|
74
|
+
* @applitools/nml-client bumped to 1.11.11
|
|
75
|
+
#### Bug Fixes
|
|
76
|
+
|
|
77
|
+
* better nml error messages ([#3311](https://github.com/Applitools-Dev/sdk/issues/3311)) ([3deea01](https://github.com/Applitools-Dev/sdk/commit/3deea0130636c44573adc919b95c1c99e6d194f1))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
* @applitools/logger bumped to 2.2.6
|
|
82
|
+
|
|
83
|
+
* @applitools/dom-snapshot bumped to 4.15.1
|
|
84
|
+
|
|
85
|
+
* @applitools/socket bumped to 1.3.7
|
|
86
|
+
|
|
87
|
+
* @applitools/req bumped to 1.8.6
|
|
88
|
+
|
|
89
|
+
* @applitools/image bumped to 1.2.5
|
|
90
|
+
|
|
91
|
+
* @applitools/dom-capture bumped to 11.6.7
|
|
92
|
+
|
|
93
|
+
* @applitools/driver bumped to 1.24.2
|
|
94
|
+
|
|
95
|
+
* @applitools/spec-driver-webdriver bumped to 1.5.2
|
|
96
|
+
|
|
97
|
+
* @applitools/spec-driver-selenium bumped to 1.7.8
|
|
98
|
+
|
|
99
|
+
* @applitools/spec-driver-puppeteer bumped to 1.6.8
|
|
100
|
+
|
|
101
|
+
* @applitools/screenshoter bumped to 3.12.9
|
|
102
|
+
|
|
103
|
+
* @applitools/tunnel-client bumped to 1.11.4
|
|
104
|
+
|
|
105
|
+
* @applitools/ufg-client bumped to 1.18.2
|
|
106
|
+
|
|
107
|
+
* @applitools/core-base bumped to 1.30.0
|
|
108
|
+
#### Features
|
|
109
|
+
|
|
110
|
+
* disable heartbeats whenever no tests are running ([#3344](https://github.com/Applitools-Dev/sdk/issues/3344)) ([b66d28a](https://github.com/Applitools-Dev/sdk/commit/b66d28a7a382f26b68de70c8633c027cb4bdf225))
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
#### Bug Fixes
|
|
114
|
+
|
|
115
|
+
* fails to create test with coded dynamic region | AD-11074 ([#3361](https://github.com/Applitools-Dev/sdk/issues/3361)) ([7f8c8cd](https://github.com/Applitools-Dev/sdk/commit/7f8c8cd85c0cd2e5861cd33fbc29c465903258d5))
|
|
116
|
+
* resolved an issue with `matchTimeout` changing `retryTimeout` ([f656f59](https://github.com/Applitools-Dev/sdk/commit/f656f59dbfb7c41fdb569fbc56d2e9daecefb854))
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
* @applitools/ec-client bumped to 1.12.13
|
|
121
|
+
|
|
122
|
+
* @applitools/test-server bumped to 1.3.5
|
|
123
|
+
|
|
124
|
+
|
|
3
125
|
## [4.52.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.51.0...js/core@4.52.0) (2025-11-09)
|
|
4
126
|
|
|
5
127
|
|
|
@@ -5,16 +5,19 @@ const calculate_required_sizes_1 = require("../automation/utils/calculate-requir
|
|
|
5
5
|
const defaults_1 = require("../automation/utils/defaults");
|
|
6
6
|
const verify_environment_info_1 = require("../ufg/utils/verify-environment-info");
|
|
7
7
|
const populate_eyes_server_settings_1 = require("../utils/populate-eyes-server-settings");
|
|
8
|
-
function makeCalculateEstimatedTime({ core, logger }) {
|
|
8
|
+
function makeCalculateEstimatedTime({ core, logger, }) {
|
|
9
9
|
return async function calculateEstimatedTime({ settings }) {
|
|
10
10
|
var _a;
|
|
11
11
|
(0, populate_eyes_server_settings_1.populateEyesServerSettings)(settings);
|
|
12
12
|
const accountInfo = await core.getAccountInfo({ settings, logger });
|
|
13
|
-
const ufgClient = await core.getUFGClient({
|
|
13
|
+
const ufgClient = await core.getUFGClient({
|
|
14
|
+
settings: {
|
|
14
15
|
...settings,
|
|
15
16
|
ufgServerUrl: accountInfo.ufgServer.ufgServerUrl,
|
|
16
17
|
accessToken: accountInfo.ufgServer.accessToken,
|
|
17
|
-
},
|
|
18
|
+
},
|
|
19
|
+
logger,
|
|
20
|
+
});
|
|
18
21
|
const deviceProviders = {
|
|
19
22
|
getChromeEmulationDevices: ufgClient.getChromeEmulationDevices.bind(ufgClient),
|
|
20
23
|
getIOSDevices: ufgClient.getIOSDevices.bind(ufgClient),
|
|
@@ -27,9 +30,7 @@ function makeCalculateEstimatedTime({ core, logger }) {
|
|
|
27
30
|
...(typeof settings.lazyLoad === 'object' ? settings.lazyLoad : {}),
|
|
28
31
|
};
|
|
29
32
|
// Calculate lazy load time per breakpoint
|
|
30
|
-
const lazyLoadTimePerBreakpoint = settings.lazyLoad
|
|
31
|
-
? Math.ceil(maxAmountToScroll / scrollLength) * waitingTime
|
|
32
|
-
: 0;
|
|
33
|
+
const lazyLoadTimePerBreakpoint = settings.lazyLoad ? Math.ceil(maxAmountToScroll / scrollLength) * waitingTime : 0;
|
|
33
34
|
// Calculate total times (only handle number case for time estimation, default from defaults.ts)
|
|
34
35
|
const waitBeforeCapture = Number(settings.waitBeforeCapture) || defaults_1.DEFAULT_WAIT_BEFORE_CAPTURE;
|
|
35
36
|
// Calculate required sizes count using the same logic as take-dom-snapshots
|
package/dist/check.js
CHANGED
|
@@ -56,7 +56,7 @@ function makeCheck({ type: defaultType = 'classic', eyes, target: defaultTarget,
|
|
|
56
56
|
!utils.types.isEmpty(settings.accessibilitySettings));
|
|
57
57
|
(_h = settings.autProxy) !== null && _h !== void 0 ? _h : (settings.autProxy = eyes.test.eyesServer.proxy);
|
|
58
58
|
(_j = settings.useDom) !== null && _j !== void 0 ? _j : (settings.useDom = false);
|
|
59
|
-
(_k = (_r = settings).
|
|
59
|
+
(_k = (_r = settings).matchTimeout) !== null && _k !== void 0 ? _k : (_r.matchTimeout = 0);
|
|
60
60
|
settings.lazyLoad = settings.lazyLoad === true ? {} : settings.lazyLoad;
|
|
61
61
|
if (settings.lazyLoad) {
|
|
62
62
|
(_l = (_s = settings.lazyLoad).scrollLength) !== null && _l !== void 0 ? _l : (_s.scrollLength = defaults_1.DEFAULT_LAZY_LOAD.scrollLength);
|
|
@@ -64,7 +64,9 @@ function makeCheck({ type: defaultType = 'classic', eyes, target: defaultTarget,
|
|
|
64
64
|
(_o = (_u = settings.lazyLoad).maxAmountToScroll) !== null && _o !== void 0 ? _o : (_u.maxAmountToScroll = defaults_1.DEFAULT_LAZY_LOAD.maxAmountToScroll);
|
|
65
65
|
}
|
|
66
66
|
settings.stepIndex = stepIndex++;
|
|
67
|
-
(_p = settings.waitBetweenStitches) !== null && _p !== void 0 ? _p : (settings.waitBetweenStitches = utils.types.isObject(settings.lazyLoad)
|
|
67
|
+
(_p = settings.waitBetweenStitches) !== null && _p !== void 0 ? _p : (settings.waitBetweenStitches = utils.types.isObject(settings.lazyLoad)
|
|
68
|
+
? settings.lazyLoad.waitingTime
|
|
69
|
+
: defaults_1.DEFAULT_WAIT_BEFORE_CAPTURE);
|
|
68
70
|
if (settings.mobileOptions) {
|
|
69
71
|
(_q = (_v = settings.mobileOptions).keepNavigationBar) !== null && _q !== void 0 ? _q : (_v.keepNavigationBar = false);
|
|
70
72
|
}
|
package/dist/classic/check.js
CHANGED
|
@@ -55,16 +55,16 @@ function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironme
|
|
|
55
55
|
let driver = undefined;
|
|
56
56
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
57
57
|
driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
58
|
-
if (settings.
|
|
59
|
-
// when
|
|
60
|
-
logger.log(`
|
|
58
|
+
if (settings.matchTimeout) {
|
|
59
|
+
// when match timeout is set, retry checking until it passes or timeout is reached. This will stall the client test execution until it passes or timeout is reached to prevent the test from continuing and changing the state of the app
|
|
60
|
+
logger.log(`Match timeout is set to ${settings.matchTimeout}ms - will retry checking until it passes or timeout is reached`);
|
|
61
61
|
const start = Date.now();
|
|
62
62
|
const environmentLogger = logger.extend({ tags: [`environment-${utils.general.shortid()}`] });
|
|
63
63
|
// this getter actually open the eyes session if it's not already open
|
|
64
64
|
const baseEyes = await Promise.all(uniqueEnvironments.map(environment => getBaseEyes({ environment, driver, logger: environmentLogger })));
|
|
65
65
|
// if the test is new for any of the environments, we wait for the page to stabaliize before starting the checks. This should prevent us from creating a baseline with a loading spinner or something similar
|
|
66
66
|
if (baseEyes.map(baseEye => baseEye.test.isNew).some(isNew => isNew)) {
|
|
67
|
-
await new Promise(resolve => setTimeout(resolve, settings.
|
|
67
|
+
await new Promise(resolve => setTimeout(resolve, settings.matchTimeout));
|
|
68
68
|
}
|
|
69
69
|
let asExpected = false, retries = 0;
|
|
70
70
|
do {
|
|
@@ -93,12 +93,12 @@ function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironme
|
|
|
93
93
|
putInStorage(exactEnvironment, eyes, Promise.resolve());
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
-
} while (!asExpected && Date.now() - start < settings.
|
|
96
|
+
} while (!asExpected && Date.now() - start < settings.matchTimeout);
|
|
97
97
|
}
|
|
98
98
|
else {
|
|
99
99
|
// generate base targets (images to be compared) and settings for each environment
|
|
100
100
|
const baseScreenshotsAndSettings = await generateBaseScreenshotsAndSettings(settings, uniqueEnvironments, eyes, logger, driver);
|
|
101
|
-
// when no
|
|
101
|
+
// when no match timeout is set, queue all environment checks against the server without stalling the client test execution
|
|
102
102
|
baseScreenshotsAndSettings.forEach(({ exactEnvironment: environment, baseSetting, baseTarget }) => {
|
|
103
103
|
checkInTheBackground(environment, baseTarget, baseSetting);
|
|
104
104
|
});
|
|
@@ -339,8 +339,11 @@ async function runOfflineSnapshots(options) {
|
|
|
339
339
|
logger: checkLogger,
|
|
340
340
|
heartbeat: {
|
|
341
341
|
processId: '',
|
|
342
|
-
|
|
343
|
-
logger.log('heartbeat is not used (offline)', settings);
|
|
342
|
+
acquire(settings) {
|
|
343
|
+
logger.log('acquire | heartbeat is not used (offline)', settings);
|
|
344
|
+
},
|
|
345
|
+
release() {
|
|
346
|
+
logger.log('release | heartbeat is not used (offline)');
|
|
344
347
|
},
|
|
345
348
|
},
|
|
346
349
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.53.1",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -79,20 +79,20 @@
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@applitools/core-base": "1.
|
|
83
|
-
"@applitools/dom-capture": "11.6.
|
|
84
|
-
"@applitools/dom-snapshot": "4.15.
|
|
85
|
-
"@applitools/driver": "1.24.
|
|
86
|
-
"@applitools/ec-client": "1.12.
|
|
87
|
-
"@applitools/logger": "2.2.
|
|
88
|
-
"@applitools/nml-client": "1.11.
|
|
89
|
-
"@applitools/req": "1.8.
|
|
90
|
-
"@applitools/screenshoter": "3.12.
|
|
82
|
+
"@applitools/core-base": "1.30.1",
|
|
83
|
+
"@applitools/dom-capture": "11.6.7",
|
|
84
|
+
"@applitools/dom-snapshot": "4.15.2",
|
|
85
|
+
"@applitools/driver": "1.24.3",
|
|
86
|
+
"@applitools/ec-client": "1.12.14",
|
|
87
|
+
"@applitools/logger": "2.2.7",
|
|
88
|
+
"@applitools/nml-client": "1.11.12",
|
|
89
|
+
"@applitools/req": "1.8.7",
|
|
90
|
+
"@applitools/screenshoter": "3.12.10",
|
|
91
91
|
"@applitools/snippets": "2.7.0",
|
|
92
|
-
"@applitools/socket": "1.3.
|
|
93
|
-
"@applitools/spec-driver-webdriver": "1.5.
|
|
94
|
-
"@applitools/ufg-client": "1.18.
|
|
95
|
-
"@applitools/utils": "1.
|
|
92
|
+
"@applitools/socket": "1.3.8",
|
|
93
|
+
"@applitools/spec-driver-webdriver": "1.5.3",
|
|
94
|
+
"@applitools/ufg-client": "1.18.3",
|
|
95
|
+
"@applitools/utils": "1.14.1",
|
|
96
96
|
"@types/ws": "8.5.5",
|
|
97
97
|
"abort-controller": "3.0.0",
|
|
98
98
|
"chalk": "4.1.2",
|
|
@@ -106,11 +106,11 @@
|
|
|
106
106
|
"devDependencies": {
|
|
107
107
|
"@applitools/bongo": "^5.10.0",
|
|
108
108
|
"@applitools/sea": "^1.0.0",
|
|
109
|
-
"@applitools/spec-driver-puppeteer": "^1.6.
|
|
110
|
-
"@applitools/spec-driver-selenium": "^1.7.
|
|
111
|
-
"@applitools/test-server": "^1.3.
|
|
109
|
+
"@applitools/spec-driver-puppeteer": "^1.6.9",
|
|
110
|
+
"@applitools/spec-driver-selenium": "^1.7.9",
|
|
111
|
+
"@applitools/test-server": "^1.3.5",
|
|
112
112
|
"@applitools/test-utils": "^1.5.17",
|
|
113
|
-
"@applitools/tunnel-client": "^1.11.
|
|
113
|
+
"@applitools/tunnel-client": "^1.11.5",
|
|
114
114
|
"@types/mocha": "^10.0.7",
|
|
115
115
|
"@types/node": "^12.20.55",
|
|
116
116
|
"@types/selenium-webdriver": "^4.1.2",
|
|
@@ -5,7 +5,7 @@ import type { Logger } from '@applitools/logger';
|
|
|
5
5
|
type Options<TSpec extends SpecType> = {
|
|
6
6
|
settings: Partial<SnapshotSettings<TSpec>> & EyesServerSettings;
|
|
7
7
|
};
|
|
8
|
-
export declare function makeCalculateEstimatedTime<TSpec extends SpecType>({ core, logger }: {
|
|
8
|
+
export declare function makeCalculateEstimatedTime<TSpec extends SpecType>({ core, logger, }: {
|
|
9
9
|
core: UFGCore<TSpec>;
|
|
10
10
|
logger: Logger;
|
|
11
11
|
}): ({ settings }: Options<TSpec>) => Promise<EstimatedTimeResult>;
|
|
@@ -17,7 +17,7 @@ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target
|
|
|
17
17
|
settings?: (BaseCheckSettings<utils.Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
|
|
18
18
|
environments?: Environment[] | undefined;
|
|
19
19
|
} & {
|
|
20
|
-
|
|
20
|
+
matchTimeout?: number | undefined;
|
|
21
21
|
} & BaseCloseSettings & {
|
|
22
22
|
environments?: Environment[] | undefined;
|
|
23
23
|
}) | undefined;
|
package/types/classic/types.d.ts
CHANGED