@applitools/core 3.11.8 → 4.0.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 +135 -0
- package/dist/abort.js +3 -3
- package/dist/automation/abort.js +7 -7
- package/dist/automation/close.js +7 -7
- package/dist/automation/get-results.js +2 -2
- package/dist/automation/utils/{extract-renderer-key.js → to-environment-key.js} +4 -8
- package/dist/automation/utils/uniquify-environments.js +27 -0
- package/dist/classic/check-and-close.js +36 -35
- package/dist/classic/check.js +36 -35
- package/dist/classic/get-base-eyes.js +3 -12
- package/dist/classic/open-eyes.js +7 -7
- package/dist/classic/utils/extract-default-environments.js +70 -0
- package/dist/classic/utils/take-screenshots.js +1 -1
- package/dist/close-batch.js +3 -3
- package/dist/close.js +3 -3
- package/dist/core.js +2 -2
- package/dist/delete-test.js +3 -3
- package/dist/extract-text.js +3 -3
- package/dist/get-account-info.js +3 -3
- package/dist/get-manager-results.js +1 -1
- package/dist/locate-text.js +3 -3
- package/dist/locate.js +3 -3
- package/dist/log-event.js +3 -3
- package/dist/open-eyes.js +18 -18
- package/dist/ufg/check-and-close.js +39 -39
- package/dist/ufg/check.js +39 -39
- package/dist/ufg/get-base-eyes.js +4 -4
- package/dist/ufg/open-eyes.js +5 -5
- package/dist/ufg/utils/{extract-default-renderers.js → extract-default-environment.js} +3 -3
- package/dist/ufg/utils/take-dom-snapshots.js +17 -17
- package/dist/universal/core-server.js +12 -13
- package/dist/utils/{extract-environment.js → extract-test-environment.js} +3 -3
- package/package.json +28 -25
- package/types/abort.d.ts +3 -3
- package/types/automation/abort.d.ts +3 -3
- package/types/automation/close.d.ts +3 -3
- package/types/automation/types.d.ts +23 -26
- package/types/automation/utils/to-environment-key.d.ts +2 -0
- package/types/automation/utils/uniquify-environments.d.ts +2 -0
- package/types/classic/check-and-close.d.ts +5 -5
- package/types/classic/check.d.ts +3 -3
- package/types/classic/utils/extract-default-environments.d.ts +9 -0
- package/types/classic/utils/take-screenshots.d.ts +2 -2
- package/types/close.d.ts +3 -3
- package/types/get-typed-eyes.d.ts +1 -4
- package/types/types.d.ts +1 -1
- package/types/ufg/check-and-close.d.ts +5 -5
- package/types/ufg/check.d.ts +3 -3
- package/types/ufg/core.d.ts +1 -1
- package/types/ufg/utils/extract-default-environment.d.ts +5 -0
- package/types/ufg/utils/take-dom-snapshots.d.ts +3 -4
- package/types/utils/extract-test-environment.d.ts +2 -0
- package/dist/automation/utils/uniquify-renderers.js +0 -27
- package/dist/classic/utils/extract-default-renderers.js +0 -72
- package/types/automation/utils/extract-renderer-key.d.ts +0 -2
- package/types/automation/utils/uniquify-renderers.d.ts +0 -2
- package/types/classic/utils/extract-default-renderers.d.ts +0 -9
- package/types/ufg/utils/extract-default-renderers.d.ts +0 -5
- package/types/utils/extract-environment.d.ts +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,140 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [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
|
+
|
|
5
|
+
|
|
6
|
+
### Dependencies
|
|
7
|
+
|
|
8
|
+
* @applitools/tunnel-client bumped to 1.3.0
|
|
9
|
+
#### Features
|
|
10
|
+
|
|
11
|
+
* add more logs for tunnel worker ([60cf839](https://github.com/applitools/eyes.sdk.javascript1/commit/60cf839f23b214dff89ff4a9c59f231c96160daf))
|
|
12
|
+
* @applitools/ec-client bumped to 1.7.14
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## [4.0.0](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.11.8...js/core@4.0.0) (2023-10-17)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### ⚠ BREAKING CHANGES
|
|
19
|
+
|
|
20
|
+
* update core to v4 ([#1936](https://github.com/applitools/eyes.sdk.javascript1/issues/1936))
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* update core to v4 ([#1936](https://github.com/applitools/eyes.sdk.javascript1/issues/1936)) ([1b68d39](https://github.com/applitools/eyes.sdk.javascript1/commit/1b68d3945d96b17b9ab1f1a87d352206fd0c81d6))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* upgrade dom-snapshot ([#1969](https://github.com/applitools/eyes.sdk.javascript1/issues/1969)) ([458beb8](https://github.com/applitools/eyes.sdk.javascript1/commit/458beb803aec3e6d51484a557b3eed8f537a709d))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Code Refactoring
|
|
33
|
+
|
|
34
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Dependencies
|
|
38
|
+
|
|
39
|
+
* @applitools/utils bumped to 1.6.2
|
|
40
|
+
#### Code Refactoring
|
|
41
|
+
|
|
42
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
43
|
+
* @applitools/logger bumped to 2.0.12
|
|
44
|
+
#### Code Refactoring
|
|
45
|
+
|
|
46
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
* @applitools/socket bumped to 1.1.12
|
|
51
|
+
#### Code Refactoring
|
|
52
|
+
|
|
53
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
* @applitools/req bumped to 1.6.2
|
|
58
|
+
#### Code Refactoring
|
|
59
|
+
|
|
60
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
* @applitools/image bumped to 1.1.7
|
|
65
|
+
#### Bug Fixes
|
|
66
|
+
|
|
67
|
+
* avoid using ascii text decoder ([1b68d39](https://github.com/applitools/eyes.sdk.javascript1/commit/1b68d3945d96b17b9ab1f1a87d352206fd0c81d6))
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
#### Code Refactoring
|
|
71
|
+
|
|
72
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
* @applitools/spec-driver-selenium bumped to 1.5.62
|
|
77
|
+
|
|
78
|
+
* @applitools/spec-driver-puppeteer bumped to 1.2.4
|
|
79
|
+
#### Code Refactoring
|
|
80
|
+
|
|
81
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
* @applitools/screenshoter bumped to 3.8.14
|
|
86
|
+
#### Bug Fixes
|
|
87
|
+
|
|
88
|
+
* allow css scrolling when taking screenshot of the webview ([2d3a257](https://github.com/applitools/eyes.sdk.javascript1/commit/2d3a2572768e7f979d16297ca316a79ab2538adb))
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
#### Code Refactoring
|
|
92
|
+
|
|
93
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
* @applitools/ufg-client bumped to 1.9.6
|
|
98
|
+
#### Code Refactoring
|
|
99
|
+
|
|
100
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
101
|
+
* drop jsdom dependency ([1b68d39](https://github.com/applitools/eyes.sdk.javascript1/commit/1b68d3945d96b17b9ab1f1a87d352206fd0c81d6))
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
* @applitools/spec-driver-webdriver bumped to 1.0.48
|
|
106
|
+
|
|
107
|
+
* @applitools/driver bumped to 1.14.4
|
|
108
|
+
#### Code Refactoring
|
|
109
|
+
|
|
110
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
* @applitools/nml-client bumped to 1.5.14
|
|
115
|
+
|
|
116
|
+
* @applitools/tunnel-client bumped to 1.2.4
|
|
117
|
+
#### Code Refactoring
|
|
118
|
+
|
|
119
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
* @applitools/ec-client bumped to 1.7.13
|
|
124
|
+
#### Code Refactoring
|
|
125
|
+
|
|
126
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
* @applitools/core-base bumped to 1.7.2
|
|
131
|
+
#### Code Refactoring
|
|
132
|
+
|
|
133
|
+
* disallow usage of global Buffer ([#1957](https://github.com/applitools/eyes.sdk.javascript1/issues/1957)) ([adcc082](https://github.com/applitools/eyes.sdk.javascript1/commit/adcc082f20f6b92e819b96424e995d9a69d99758))
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
3
138
|
## [3.11.8](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.11.7...js/core@3.11.8) (2023-10-09)
|
|
4
139
|
|
|
5
140
|
|
package/dist/abort.js
CHANGED
|
@@ -25,14 +25,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeAbort = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function makeAbort({ eyes,
|
|
28
|
+
function makeAbort({ eyes, environments: defaultEnvironments, logger: mainLogger, }) {
|
|
29
29
|
return async function abort({ settings, logger = mainLogger, } = {}) {
|
|
30
30
|
var _a;
|
|
31
31
|
logger = logger.extend(mainLogger, { tags: [`abort-${utils.general.shortid()}`] });
|
|
32
32
|
const typedEyes = await eyes.getTypedEyes({ logger });
|
|
33
33
|
settings !== null && settings !== void 0 ? settings : (settings = {});
|
|
34
|
-
if (typedEyes.type === 'classic' && !utils.types.isEmpty(
|
|
35
|
-
(_a = settings.
|
|
34
|
+
if (typedEyes.type === 'classic' && !utils.types.isEmpty(defaultEnvironments)) {
|
|
35
|
+
(_a = settings.environments) !== null && _a !== void 0 ? _a : (settings.environments = defaultEnvironments);
|
|
36
36
|
}
|
|
37
37
|
await typedEyes.abort({ settings, logger });
|
|
38
38
|
};
|
package/dist/automation/abort.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeAbort = void 0;
|
|
4
4
|
const driver_1 = require("@applitools/driver");
|
|
5
|
-
const
|
|
6
|
-
function makeAbort({ eyes, target, controller,
|
|
5
|
+
const uniquify_environments_1 = require("./utils/uniquify-environments");
|
|
6
|
+
function makeAbort({ eyes, target, controller, environments: defaultEnvironments, spec, logger: mainLogger, }) {
|
|
7
7
|
return async function abort({ settings, logger = mainLogger, } = {}) {
|
|
8
8
|
var _a;
|
|
9
9
|
logger = logger.extend(mainLogger);
|
|
@@ -27,11 +27,11 @@ function makeAbort({ eyes, target, controller, renderers: defaultRenderers, spec
|
|
|
27
27
|
logger.warn('Command "abort" received an error during extracting driver metadata', error);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
(_a = settings.
|
|
31
|
-
if (eyes.storage.size === 0 && settings.
|
|
32
|
-
const
|
|
33
|
-
logger.log('Command "abort" starting filler tests for
|
|
34
|
-
await Promise.all(
|
|
30
|
+
(_a = settings.environments) !== null && _a !== void 0 ? _a : (settings.environments = defaultEnvironments);
|
|
31
|
+
if (eyes.storage.size === 0 && settings.environments && settings.environments.length > 0) {
|
|
32
|
+
const uniqueEnvironments = (0, uniquify_environments_1.uniquifyEnvironments)(settings.environments);
|
|
33
|
+
logger.log('Command "abort" starting filler tests for environments', uniqueEnvironments);
|
|
34
|
+
await Promise.all(uniqueEnvironments.map(environment => eyes.getBaseEyes({ settings: { environment }, logger })));
|
|
35
35
|
}
|
|
36
36
|
eyes.storage.forEach(async (item) => {
|
|
37
37
|
var _a, _b;
|
package/dist/automation/close.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeClose = void 0;
|
|
4
4
|
const driver_1 = require("@applitools/driver");
|
|
5
|
-
const
|
|
6
|
-
function makeClose({ eyes, target,
|
|
5
|
+
const uniquify_environments_1 = require("./utils/uniquify-environments");
|
|
6
|
+
function makeClose({ eyes, target, environments: defaultEnvironments, spec, logger: mainLogger, }) {
|
|
7
7
|
return async function close({ settings, logger = mainLogger, } = {}) {
|
|
8
8
|
var _a;
|
|
9
9
|
logger = logger.extend(mainLogger);
|
|
@@ -26,11 +26,11 @@ function makeClose({ eyes, target, renderers: defaultRenderers, spec, logger: ma
|
|
|
26
26
|
logger.warn('Command "close" received an error during extracting driver metadata', error);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
(_a = settings.
|
|
30
|
-
if (eyes.storage.size === 0 && settings.
|
|
31
|
-
const
|
|
32
|
-
logger.log('Command "close" starting filler tests for
|
|
33
|
-
await Promise.all(
|
|
29
|
+
(_a = settings.environments) !== null && _a !== void 0 ? _a : (settings.environments = defaultEnvironments);
|
|
30
|
+
if (eyes.storage.size === 0 && settings.environments && settings.environments.length > 0) {
|
|
31
|
+
const uniqueEnvironments = (0, uniquify_environments_1.uniquifyEnvironments)(settings.environments);
|
|
32
|
+
logger.log('Command "close" starting filler tests for environments', settings.environments);
|
|
33
|
+
await Promise.all(uniqueEnvironments.map(environment => eyes.getBaseEyes({ settings: { environment }, logger })));
|
|
34
34
|
}
|
|
35
35
|
eyes.storage.forEach(async (item) => {
|
|
36
36
|
var _a, _b;
|
|
@@ -11,13 +11,13 @@ function makeGetResults({ eyes, logger: mainLogger }) {
|
|
|
11
11
|
try {
|
|
12
12
|
const [eyes] = await Promise.all([item.eyes, ...item.jobs]);
|
|
13
13
|
const [result] = await eyes.getResults({ settings, logger });
|
|
14
|
-
return { ...result,
|
|
14
|
+
return { ...result, environment: eyes.test.environment };
|
|
15
15
|
}
|
|
16
16
|
catch (error) {
|
|
17
17
|
if (error instanceof abort_error_1.AbortError && ((_a = error.info) === null || _a === void 0 ? void 0 : _a.eyes)) {
|
|
18
18
|
logger.warn('Command "getResults" received an abort error during performing', settings);
|
|
19
19
|
const [result] = await error.info.eyes.getResults({ settings, logger });
|
|
20
|
-
return { ...result,
|
|
20
|
+
return { ...result, environment: error.info.environment };
|
|
21
21
|
}
|
|
22
22
|
logger.fatal('Command "getResults" received an error during performing', settings);
|
|
23
23
|
throw error;
|
|
@@ -23,13 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.toEnvironmentKey = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
const originalRenderer = utils.types.has(renderer, 'environment')
|
|
31
|
-
? (_a = renderer.environment.renderer) !== null && _a !== void 0 ? _a : renderer
|
|
32
|
-
: renderer;
|
|
33
|
-
return JSON.stringify(originalRenderer);
|
|
28
|
+
function toEnvironmentKey(environment) {
|
|
29
|
+
return JSON.stringify(utils.types.has(environment, 'requested') ? environment.requested : environment);
|
|
34
30
|
}
|
|
35
|
-
exports.
|
|
31
|
+
exports.toEnvironmentKey = toEnvironmentKey;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uniquifyEnvironments = void 0;
|
|
4
|
+
function uniquifyEnvironments(environments) {
|
|
5
|
+
const duplications = new Map(environments.map(environment => [JSON.stringify(environment), 0]));
|
|
6
|
+
return environments.reduce((uniqueEnvironments, environment) => {
|
|
7
|
+
const key = JSON.stringify(environment);
|
|
8
|
+
let index = duplications.get(key);
|
|
9
|
+
if (index > 0) {
|
|
10
|
+
if (!environment.environmentId) {
|
|
11
|
+
let uniqueEnvironment;
|
|
12
|
+
do {
|
|
13
|
+
uniqueEnvironment = { ...environment, environmentId: `${index}` };
|
|
14
|
+
index += 1;
|
|
15
|
+
} while (duplications.has(JSON.stringify(uniqueEnvironment)));
|
|
16
|
+
uniqueEnvironments.push(uniqueEnvironment);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
index += 1;
|
|
21
|
+
uniqueEnvironments.push(environment);
|
|
22
|
+
}
|
|
23
|
+
duplications.set(key, index);
|
|
24
|
+
return uniqueEnvironments;
|
|
25
|
+
}, []);
|
|
26
|
+
}
|
|
27
|
+
exports.uniquifyEnvironments = uniquifyEnvironments;
|
|
@@ -28,11 +28,11 @@ const driver_1 = require("@applitools/driver");
|
|
|
28
28
|
const take_screenshots_1 = require("./utils/take-screenshots");
|
|
29
29
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
30
30
|
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
31
|
-
const
|
|
32
|
-
const
|
|
31
|
+
const uniquify_environments_1 = require("../automation/utils/uniquify-environments");
|
|
32
|
+
const to_environment_key_1 = require("../automation/utils/to-environment-key");
|
|
33
33
|
const abort_error_1 = require("../errors/abort-error");
|
|
34
34
|
const utils = __importStar(require("@applitools/utils"));
|
|
35
|
-
function makeCheckAndClose({ eyes, target: defaultTarget,
|
|
35
|
+
function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultEnvironments = [], spec, signal, logger: mainLogger, }) {
|
|
36
36
|
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
37
37
|
var _a, _b;
|
|
38
38
|
logger = logger.extend(mainLogger);
|
|
@@ -43,26 +43,26 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
43
43
|
logger.warn('Command "checkAndClose" was called after test was already aborted');
|
|
44
44
|
throw new abort_error_1.AbortError('Command "checkAndClose" was called after test was already aborted');
|
|
45
45
|
}
|
|
46
|
-
const
|
|
46
|
+
const uniqueEnvironments = (0, uniquify_environments_1.uniquifyEnvironments)((_a = settings.environments) !== null && _a !== void 0 ? _a : defaultEnvironments);
|
|
47
47
|
const baseTargets = [];
|
|
48
48
|
const baseSettings = [];
|
|
49
|
-
const
|
|
49
|
+
const exactEnvironments = [];
|
|
50
50
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
51
51
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
52
52
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
53
|
-
const
|
|
54
|
-
|
|
53
|
+
const driverEnvironment = await driver.getEnvironment();
|
|
54
|
+
uniqueEnvironments.forEach(environment => {
|
|
55
55
|
var _a, _b;
|
|
56
56
|
var _c, _d;
|
|
57
|
-
if (utils.types.has(
|
|
58
|
-
(_a = (_c =
|
|
57
|
+
if (utils.types.has(environment, 'iosDeviceInfo')) {
|
|
58
|
+
(_a = (_c = environment.iosDeviceInfo).version) !== null && _a !== void 0 ? _a : (_c.version = driverEnvironment.platformVersion);
|
|
59
59
|
}
|
|
60
|
-
else if (utils.types.has(
|
|
61
|
-
(_b = (_d =
|
|
60
|
+
else if (utils.types.has(environment, 'androidDeviceInfo')) {
|
|
61
|
+
(_b = (_d = environment.androidDeviceInfo).version) !== null && _b !== void 0 ? _b : (_d.version = driverEnvironment.platformVersion);
|
|
62
62
|
}
|
|
63
|
-
return
|
|
63
|
+
return environment;
|
|
64
64
|
});
|
|
65
|
-
if (settings.lazyLoad &&
|
|
65
|
+
if (settings.lazyLoad && driverEnvironment.isWeb) {
|
|
66
66
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
67
67
|
context: driver.currentContext,
|
|
68
68
|
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
@@ -70,19 +70,19 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
const { elementReferencesToCalculate, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
|
|
73
|
-
if (
|
|
73
|
+
if (driverEnvironment.isWeb || !driverEnvironment.isApplitoolsLib || settings.screenshotMode === 'default') {
|
|
74
74
|
const screenshots = await (0, take_screenshots_1.takeScreenshots)({
|
|
75
75
|
driver,
|
|
76
76
|
settings: {
|
|
77
77
|
...settings,
|
|
78
|
-
|
|
78
|
+
environments: uniqueEnvironments,
|
|
79
79
|
regionsToCalculate: elementReferencesToCalculate,
|
|
80
80
|
calculateView: !!settings.pageId,
|
|
81
81
|
domSettings: settings.sendDom ? { proxy: eyes.test.eyesServer.proxy } : undefined,
|
|
82
82
|
},
|
|
83
83
|
logger,
|
|
84
84
|
});
|
|
85
|
-
|
|
85
|
+
exactEnvironments.push(...uniqueEnvironments);
|
|
86
86
|
screenshots.forEach(({ calculatedRegions, ...baseTarget }) => {
|
|
87
87
|
baseTargets.push(baseTarget);
|
|
88
88
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions }));
|
|
@@ -91,12 +91,12 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
91
91
|
else {
|
|
92
92
|
const nmlClient = await eyes.core.getNMLClient({
|
|
93
93
|
driver,
|
|
94
|
-
settings: { ...eyes.test.eyesServer,
|
|
94
|
+
settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
|
|
95
95
|
logger,
|
|
96
96
|
});
|
|
97
97
|
const screenshots = await nmlClient.takeScreenshots({
|
|
98
98
|
settings: {
|
|
99
|
-
|
|
99
|
+
environments: uniqueEnvironments,
|
|
100
100
|
fully: settings.fully,
|
|
101
101
|
stitchMode: settings.stitchMode,
|
|
102
102
|
hideScrollbars: settings.hideScrollbars,
|
|
@@ -109,56 +109,57 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
109
109
|
},
|
|
110
110
|
logger,
|
|
111
111
|
});
|
|
112
|
-
screenshots.forEach(({
|
|
113
|
-
|
|
112
|
+
screenshots.forEach(({ environment, ...baseTarget }) => {
|
|
113
|
+
exactEnvironments.push(environment);
|
|
114
114
|
baseTargets.push({ ...baseTarget, isTransformed: true });
|
|
115
115
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions: [] }));
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
else {
|
|
120
|
-
|
|
120
|
+
exactEnvironments.push(...uniqueEnvironments);
|
|
121
121
|
baseTargets.push(target);
|
|
122
122
|
baseSettings.push(settings);
|
|
123
123
|
}
|
|
124
|
-
const promises =
|
|
125
|
-
|
|
124
|
+
const promises = exactEnvironments.map(async (environment, index) => {
|
|
125
|
+
var _a, _b, _c;
|
|
126
|
+
const environmentLogger = logger.extend({ tags: [`environment-${utils.general.shortid()}`] });
|
|
126
127
|
try {
|
|
127
128
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
128
|
-
|
|
129
|
+
environmentLogger.warn('Command "checkAndClose" was aborted before checking');
|
|
129
130
|
throw new abort_error_1.AbortError('Command "checkAndClose" was aborted before checking');
|
|
130
131
|
}
|
|
131
|
-
const baseEyes = await eyes.getBaseEyes({ settings: {
|
|
132
|
+
const baseEyes = await eyes.getBaseEyes({ settings: { environment }, logger: environmentLogger });
|
|
132
133
|
try {
|
|
133
134
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
134
|
-
|
|
135
|
+
environmentLogger.warn('Command "checkAndClose" was aborted before checking');
|
|
135
136
|
throw new abort_error_1.AbortError('Command "checkAndClose" was aborted before checking');
|
|
136
137
|
}
|
|
137
138
|
else if (!baseEyes.running) {
|
|
138
|
-
|
|
139
|
-
throw new abort_error_1.AbortError(`Check on environment with id "${baseEyes.test.
|
|
139
|
+
environmentLogger.warn(`Check on environment with id "${(_a = baseEyes.test.environment) === null || _a === void 0 ? void 0 : _a.environmentId}" was aborted during one of the previous steps`);
|
|
140
|
+
throw new abort_error_1.AbortError(`Check on environment with id "${(_b = baseEyes.test.environment) === null || _b === void 0 ? void 0 : _b.environmentId}" was aborted during one of the previous steps`);
|
|
140
141
|
}
|
|
141
142
|
await baseEyes.checkAndClose({
|
|
142
143
|
target: baseTargets[index],
|
|
143
144
|
settings: baseSettings[index],
|
|
144
|
-
logger:
|
|
145
|
+
logger: environmentLogger,
|
|
145
146
|
});
|
|
146
147
|
}
|
|
147
148
|
catch (error) {
|
|
148
|
-
|
|
149
|
-
await baseEyes.abort({ logger:
|
|
149
|
+
environmentLogger.error(`Check on environment with id "${(_c = baseEyes.test.environment) === null || _c === void 0 ? void 0 : _c.environmentId}" failed due to an error`, error);
|
|
150
|
+
await baseEyes.abort({ logger: environmentLogger });
|
|
150
151
|
error.info = { eyes: baseEyes };
|
|
151
152
|
throw error;
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
catch (error) {
|
|
155
|
-
|
|
156
|
-
error.info = { ...error.info, userTestId: eyes.test.userTestId,
|
|
156
|
+
environmentLogger.error(`Environment with id ${environment.environmentId} failed before checking started due to an error`, error);
|
|
157
|
+
error.info = { ...error.info, userTestId: eyes.test.userTestId, environment: environment };
|
|
157
158
|
throw error;
|
|
158
159
|
}
|
|
159
160
|
});
|
|
160
|
-
|
|
161
|
-
const key = (0,
|
|
161
|
+
exactEnvironments.forEach((environment, index) => {
|
|
162
|
+
const key = (0, to_environment_key_1.toEnvironmentKey)(environment);
|
|
162
163
|
let item = eyes.storage.get(key);
|
|
163
164
|
if (!item) {
|
|
164
165
|
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
package/dist/classic/check.js
CHANGED
|
@@ -28,11 +28,11 @@ const driver_1 = require("@applitools/driver");
|
|
|
28
28
|
const take_screenshots_1 = require("./utils/take-screenshots");
|
|
29
29
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
30
30
|
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
31
|
-
const
|
|
32
|
-
const
|
|
31
|
+
const uniquify_environments_1 = require("../automation/utils/uniquify-environments");
|
|
32
|
+
const to_environment_key_1 = require("../automation/utils/to-environment-key");
|
|
33
33
|
const abort_error_1 = require("../errors/abort-error");
|
|
34
34
|
const utils = __importStar(require("@applitools/utils"));
|
|
35
|
-
function makeCheck({ eyes, target: defaultTarget,
|
|
35
|
+
function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironments = [], spec, signal, logger: mainLogger, }) {
|
|
36
36
|
return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
37
37
|
var _a, _b;
|
|
38
38
|
logger = logger.extend(mainLogger);
|
|
@@ -43,26 +43,26 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
43
43
|
logger.warn('Command "check" was called after test was already aborted');
|
|
44
44
|
throw new abort_error_1.AbortError('Command "check" was called after test was already aborted');
|
|
45
45
|
}
|
|
46
|
-
const
|
|
46
|
+
const uniqueEnvironments = (0, uniquify_environments_1.uniquifyEnvironments)((_a = settings.environments) !== null && _a !== void 0 ? _a : defaultEnvironments);
|
|
47
47
|
const baseTargets = [];
|
|
48
48
|
const baseSettings = [];
|
|
49
|
-
const
|
|
49
|
+
const exactEnvironments = [];
|
|
50
50
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
51
51
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
52
52
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
53
|
-
const
|
|
54
|
-
|
|
53
|
+
const driverEnvironment = await driver.getEnvironment();
|
|
54
|
+
uniqueEnvironments.forEach(environment => {
|
|
55
55
|
var _a, _b;
|
|
56
56
|
var _c, _d;
|
|
57
|
-
if (utils.types.has(
|
|
58
|
-
(_a = (_c =
|
|
57
|
+
if (utils.types.has(environment, 'iosDeviceInfo')) {
|
|
58
|
+
(_a = (_c = environment.iosDeviceInfo).version) !== null && _a !== void 0 ? _a : (_c.version = driverEnvironment.platformVersion);
|
|
59
59
|
}
|
|
60
|
-
else if (utils.types.has(
|
|
61
|
-
(_b = (_d =
|
|
60
|
+
else if (utils.types.has(environment, 'androidDeviceInfo')) {
|
|
61
|
+
(_b = (_d = environment.androidDeviceInfo).version) !== null && _b !== void 0 ? _b : (_d.version = driverEnvironment.platformVersion);
|
|
62
62
|
}
|
|
63
|
-
return
|
|
63
|
+
return environment;
|
|
64
64
|
});
|
|
65
|
-
if (settings.lazyLoad &&
|
|
65
|
+
if (settings.lazyLoad && driverEnvironment.isWeb) {
|
|
66
66
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
67
67
|
context: driver.currentContext,
|
|
68
68
|
settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
|
|
@@ -70,19 +70,19 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
const { elementReferencesToCalculate, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
|
|
73
|
-
if (
|
|
73
|
+
if (driverEnvironment.isWeb || !driverEnvironment.isApplitoolsLib || settings.screenshotMode === 'default') {
|
|
74
74
|
const screenshots = await (0, take_screenshots_1.takeScreenshots)({
|
|
75
75
|
driver,
|
|
76
76
|
settings: {
|
|
77
77
|
...settings,
|
|
78
|
-
|
|
78
|
+
environments: uniqueEnvironments,
|
|
79
79
|
regionsToCalculate: elementReferencesToCalculate,
|
|
80
80
|
calculateView: !!settings.pageId,
|
|
81
81
|
domSettings: settings.sendDom ? { proxy: eyes.test.eyesServer.proxy } : undefined,
|
|
82
82
|
},
|
|
83
83
|
logger,
|
|
84
84
|
});
|
|
85
|
-
|
|
85
|
+
exactEnvironments.push(...uniqueEnvironments);
|
|
86
86
|
screenshots.forEach(({ calculatedRegions, ...baseTarget }) => {
|
|
87
87
|
baseTargets.push(baseTarget);
|
|
88
88
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions }));
|
|
@@ -91,12 +91,12 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
91
91
|
else {
|
|
92
92
|
const nmlClient = await eyes.core.getNMLClient({
|
|
93
93
|
driver,
|
|
94
|
-
settings: { ...eyes.test.eyesServer,
|
|
94
|
+
settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
|
|
95
95
|
logger,
|
|
96
96
|
});
|
|
97
97
|
const screenshots = await nmlClient.takeScreenshots({
|
|
98
98
|
settings: {
|
|
99
|
-
|
|
99
|
+
environments: uniqueEnvironments,
|
|
100
100
|
fully: settings.fully,
|
|
101
101
|
stitchMode: settings.stitchMode,
|
|
102
102
|
hideScrollbars: settings.hideScrollbars,
|
|
@@ -109,57 +109,58 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
109
109
|
},
|
|
110
110
|
logger,
|
|
111
111
|
});
|
|
112
|
-
screenshots.forEach(({
|
|
113
|
-
|
|
112
|
+
screenshots.forEach(({ environment, ...baseTarget }) => {
|
|
113
|
+
exactEnvironments.push(environment);
|
|
114
114
|
baseTargets.push({ ...baseTarget, isTransformed: true });
|
|
115
115
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions: [] }));
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
else {
|
|
120
|
-
|
|
120
|
+
exactEnvironments.push(...uniqueEnvironments);
|
|
121
121
|
baseTargets.push(target);
|
|
122
122
|
baseSettings.push(settings);
|
|
123
123
|
}
|
|
124
|
-
const promises =
|
|
125
|
-
|
|
124
|
+
const promises = exactEnvironments.map(async (environment, index) => {
|
|
125
|
+
var _a, _b, _c;
|
|
126
|
+
const environmentLogger = logger.extend({ tags: [`environment-${utils.general.shortid()}`] });
|
|
126
127
|
try {
|
|
127
128
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
128
|
-
|
|
129
|
+
environmentLogger.warn('Command "check" was aborted before checking');
|
|
129
130
|
throw new abort_error_1.AbortError('Command "check" was aborted before checking');
|
|
130
131
|
}
|
|
131
|
-
const baseEyes = await eyes.getBaseEyes({ settings: {
|
|
132
|
+
const baseEyes = await eyes.getBaseEyes({ settings: { environment }, logger: environmentLogger });
|
|
132
133
|
try {
|
|
133
134
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
134
|
-
|
|
135
|
+
environmentLogger.warn('Command "check" was aborted before checking');
|
|
135
136
|
throw new abort_error_1.AbortError('Command "check" was aborted before checking');
|
|
136
137
|
}
|
|
137
138
|
else if (!baseEyes.running) {
|
|
138
|
-
|
|
139
|
-
throw new abort_error_1.AbortError(`Check on environment with id "${baseEyes.test.
|
|
139
|
+
environmentLogger.warn(`Check on environment with id "${(_a = baseEyes.test.environment) === null || _a === void 0 ? void 0 : _a.environmentId}" was aborted during one of the previous steps`);
|
|
140
|
+
throw new abort_error_1.AbortError(`Check on environment with id "${(_b = baseEyes.test.environment) === null || _b === void 0 ? void 0 : _b.environmentId}" was aborted during one of the previous steps`);
|
|
140
141
|
}
|
|
141
142
|
await baseEyes.check({
|
|
142
143
|
target: baseTargets[index],
|
|
143
144
|
settings: baseSettings[index],
|
|
144
|
-
logger:
|
|
145
|
+
logger: environmentLogger,
|
|
145
146
|
});
|
|
146
147
|
}
|
|
147
148
|
catch (error) {
|
|
148
|
-
|
|
149
|
+
environmentLogger.error(`Check on environment with id "${(_c = baseEyes.test.environment) === null || _c === void 0 ? void 0 : _c.environmentId}" failed due to an error`, error);
|
|
149
150
|
if (baseEyes.running && !(signal === null || signal === void 0 ? void 0 : signal.aborted))
|
|
150
|
-
await baseEyes.abort({ logger:
|
|
151
|
+
await baseEyes.abort({ logger: environmentLogger });
|
|
151
152
|
error.info = { eyes: baseEyes };
|
|
152
153
|
throw error;
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
catch (error) {
|
|
156
|
-
|
|
157
|
-
error.info = { ...error.info, userTestId: eyes.test.userTestId,
|
|
157
|
+
environmentLogger.error(`Environment with id ${environment.environmentId} failed before checking started due to an error`, error);
|
|
158
|
+
error.info = { ...error.info, userTestId: eyes.test.userTestId, environment };
|
|
158
159
|
throw error;
|
|
159
160
|
}
|
|
160
161
|
});
|
|
161
|
-
|
|
162
|
-
const key = (0,
|
|
162
|
+
exactEnvironments.forEach((environment, index) => {
|
|
163
|
+
const key = (0, to_environment_key_1.toEnvironmentKey)(environment);
|
|
163
164
|
let item = eyes.storage.get(key);
|
|
164
165
|
if (!item) {
|
|
165
166
|
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|