@applitools/core 3.10.0 → 3.10.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 +59 -0
- package/dist/automation/get-results.js +1 -1
- package/dist/automation/utils/extract-renderer-key.js +35 -0
- package/dist/classic/check-and-close.js +21 -6
- package/dist/classic/check.js +22 -17
- package/dist/classic/get-base-eyes.js +6 -5
- package/dist/ufg/check-and-close.js +3 -2
- package/dist/ufg/check.js +3 -2
- package/dist/ufg/get-base-eyes.js +3 -4
- package/package.json +15 -15
- package/types/automation/types.d.ts +2 -3
- package/types/automation/utils/extract-renderer-key.d.ts +2 -0
- package/types/types.d.ts +2 -2
- package/types/ufg/core.d.ts +1 -1
- package/types/ufg/utils/take-dom-snapshots.d.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,64 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.10.1](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.10.0...js/core@3.10.1) (2023-09-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Dependencies
|
|
7
|
+
|
|
8
|
+
* @applitools/utils bumped to 1.6.0
|
|
9
|
+
#### Features
|
|
10
|
+
|
|
11
|
+
* add support for fallback in `req` ([#1899](https://github.com/applitools/eyes.sdk.javascript1/issues/1899)) ([d69c4b5](https://github.com/applitools/eyes.sdk.javascript1/commit/d69c4b5830370c471dfc25b6e2caddca8b458df9))
|
|
12
|
+
* @applitools/logger bumped to 2.0.10
|
|
13
|
+
|
|
14
|
+
* @applitools/socket bumped to 1.1.10
|
|
15
|
+
|
|
16
|
+
* @applitools/req bumped to 1.6.0
|
|
17
|
+
#### Features
|
|
18
|
+
|
|
19
|
+
* add support for fallback in `req` ([#1899](https://github.com/applitools/eyes.sdk.javascript1/issues/1899)) ([d69c4b5](https://github.com/applitools/eyes.sdk.javascript1/commit/d69c4b5830370c471dfc25b6e2caddca8b458df9))
|
|
20
|
+
* update testcafe ([#1884](https://github.com/applitools/eyes.sdk.javascript1/issues/1884)) ([104f1b6](https://github.com/applitools/eyes.sdk.javascript1/commit/104f1b6cc0d4f107ba46404383de2fa11fe99dcf))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
* @applitools/spec-driver-puppeteer bumped to 1.2.0
|
|
25
|
+
#### Features
|
|
26
|
+
|
|
27
|
+
* update testcafe ([#1884](https://github.com/applitools/eyes.sdk.javascript1/issues/1884)) ([104f1b6](https://github.com/applitools/eyes.sdk.javascript1/commit/104f1b6cc0d4f107ba46404383de2fa11fe99dcf))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
* @applitools/spec-driver-webdriver bumped to 1.0.44
|
|
32
|
+
|
|
33
|
+
* @applitools/spec-driver-selenium bumped to 1.5.58
|
|
34
|
+
|
|
35
|
+
* @applitools/driver bumped to 1.14.0
|
|
36
|
+
#### Features
|
|
37
|
+
|
|
38
|
+
* update testcafe ([#1884](https://github.com/applitools/eyes.sdk.javascript1/issues/1884)) ([104f1b6](https://github.com/applitools/eyes.sdk.javascript1/commit/104f1b6cc0d4f107ba46404383de2fa11fe99dcf))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
* @applitools/ufg-client bumped to 1.8.0
|
|
43
|
+
#### Features
|
|
44
|
+
|
|
45
|
+
* add support for fallback in `req` ([#1899](https://github.com/applitools/eyes.sdk.javascript1/issues/1899)) ([d69c4b5](https://github.com/applitools/eyes.sdk.javascript1/commit/d69c4b5830370c471dfc25b6e2caddca8b458df9))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
* @applitools/image bumped to 1.1.5
|
|
50
|
+
|
|
51
|
+
* @applitools/screenshoter bumped to 3.8.10
|
|
52
|
+
|
|
53
|
+
* @applitools/nml-client bumped to 1.5.10
|
|
54
|
+
|
|
55
|
+
* @applitools/tunnel-client bumped to 1.2.2
|
|
56
|
+
|
|
57
|
+
* @applitools/ec-client bumped to 1.7.7
|
|
58
|
+
|
|
59
|
+
* @applitools/core-base bumped to 1.5.3
|
|
60
|
+
|
|
61
|
+
|
|
3
62
|
## [3.10.0](https://github.com/applitools/eyes.sdk.javascript1/compare/js/core@3.9.1...js/core@3.10.0) (2023-08-30)
|
|
4
63
|
|
|
5
64
|
|
|
@@ -11,7 +11,7 @@ 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, renderer:
|
|
14
|
+
return { ...result, renderer: eyes.test.renderer };
|
|
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)) {
|
|
@@ -0,0 +1,35 @@
|
|
|
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.extractRendererKey = void 0;
|
|
27
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
+
function extractRendererKey(renderer) {
|
|
29
|
+
var _a;
|
|
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);
|
|
34
|
+
}
|
|
35
|
+
exports.extractRendererKey = extractRendererKey;
|
|
@@ -29,6 +29,7 @@ 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
31
|
const uniquify_renderers_1 = require("../automation/utils/uniquify-renderers");
|
|
32
|
+
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
32
33
|
const abort_error_1 = require("../errors/abort-error");
|
|
33
34
|
const utils = __importStar(require("@applitools/utils"));
|
|
34
35
|
function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRenderers = [], spec, signal, logger: mainLogger, }) {
|
|
@@ -45,10 +46,22 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
45
46
|
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : defaultRenderers);
|
|
46
47
|
const baseTargets = [];
|
|
47
48
|
const baseSettings = [];
|
|
49
|
+
const transformedRenderers = [];
|
|
48
50
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
49
51
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
50
52
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
51
53
|
const environment = await driver.getEnvironment();
|
|
54
|
+
uniqueRenderers.forEach(renderer => {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
var _c, _d;
|
|
57
|
+
if (utils.types.has(renderer, 'iosDeviceInfo')) {
|
|
58
|
+
(_a = (_c = renderer.iosDeviceInfo).version) !== null && _a !== void 0 ? _a : (_c.version = environment.platformVersion);
|
|
59
|
+
}
|
|
60
|
+
else if (utils.types.has(renderer, 'androidDeviceInfo')) {
|
|
61
|
+
(_b = (_d = renderer.androidDeviceInfo).version) !== null && _b !== void 0 ? _b : (_d.version = environment.platformVersion);
|
|
62
|
+
}
|
|
63
|
+
return renderer;
|
|
64
|
+
});
|
|
52
65
|
if (settings.lazyLoad && environment.isWeb) {
|
|
53
66
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
54
67
|
context: driver.currentContext,
|
|
@@ -69,6 +82,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
69
82
|
},
|
|
70
83
|
logger,
|
|
71
84
|
});
|
|
85
|
+
transformedRenderers.push(...uniqueRenderers);
|
|
72
86
|
screenshots.forEach(({ calculatedRegions, ...baseTarget }) => {
|
|
73
87
|
baseTargets.push(baseTarget);
|
|
74
88
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions }));
|
|
@@ -95,18 +109,19 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
95
109
|
},
|
|
96
110
|
logger,
|
|
97
111
|
});
|
|
98
|
-
screenshots.forEach(({ calculatedRegions: _calculatedRegions, renderEnvironment, ...baseTarget }
|
|
99
|
-
|
|
112
|
+
screenshots.forEach(({ calculatedRegions: _calculatedRegions, renderEnvironment, ...baseTarget }) => {
|
|
113
|
+
transformedRenderers.push({ environment: renderEnvironment });
|
|
100
114
|
baseTargets.push({ ...baseTarget, isTransformed: true });
|
|
101
115
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions: [] }));
|
|
102
116
|
});
|
|
103
117
|
}
|
|
104
118
|
}
|
|
105
119
|
else {
|
|
120
|
+
transformedRenderers.push(...uniqueRenderers);
|
|
106
121
|
baseTargets.push(target);
|
|
107
122
|
baseSettings.push(settings);
|
|
108
123
|
}
|
|
109
|
-
const promises =
|
|
124
|
+
const promises = transformedRenderers.map(async (renderer, index) => {
|
|
110
125
|
const rendererLogger = logger.extend({ tags: [`renderer-${utils.general.shortid()}`] });
|
|
111
126
|
try {
|
|
112
127
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
@@ -142,11 +157,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
142
157
|
throw error;
|
|
143
158
|
}
|
|
144
159
|
});
|
|
145
|
-
|
|
146
|
-
const key =
|
|
160
|
+
transformedRenderers.forEach((renderer, index) => {
|
|
161
|
+
const key = (0, extract_renderer_key_1.extractRendererKey)(renderer);
|
|
147
162
|
let item = eyes.storage.get(key);
|
|
148
163
|
if (!item) {
|
|
149
|
-
item = {
|
|
164
|
+
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
150
165
|
eyes.storage.set(key, item);
|
|
151
166
|
}
|
|
152
167
|
item.jobs.push(promises[index]);
|
package/dist/classic/check.js
CHANGED
|
@@ -29,6 +29,7 @@ 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
31
|
const uniquify_renderers_1 = require("../automation/utils/uniquify-renderers");
|
|
32
|
+
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
32
33
|
const abort_error_1 = require("../errors/abort-error");
|
|
33
34
|
const utils = __importStar(require("@applitools/utils"));
|
|
34
35
|
function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers = [], spec, signal, logger: mainLogger, }) {
|
|
@@ -45,10 +46,22 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
45
46
|
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : defaultRenderers);
|
|
46
47
|
const baseTargets = [];
|
|
47
48
|
const baseSettings = [];
|
|
49
|
+
const transformedRenderers = [];
|
|
48
50
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
49
51
|
const driver = await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger });
|
|
50
52
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
51
53
|
const environment = await driver.getEnvironment();
|
|
54
|
+
uniqueRenderers.forEach(renderer => {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
var _c, _d;
|
|
57
|
+
if (utils.types.has(renderer, 'iosDeviceInfo')) {
|
|
58
|
+
(_a = (_c = renderer.iosDeviceInfo).version) !== null && _a !== void 0 ? _a : (_c.version = environment.platformVersion);
|
|
59
|
+
}
|
|
60
|
+
else if (utils.types.has(renderer, 'androidDeviceInfo')) {
|
|
61
|
+
(_b = (_d = renderer.androidDeviceInfo).version) !== null && _b !== void 0 ? _b : (_d.version = environment.platformVersion);
|
|
62
|
+
}
|
|
63
|
+
return renderer;
|
|
64
|
+
});
|
|
52
65
|
if (settings.lazyLoad && environment.isWeb) {
|
|
53
66
|
await (0, wait_for_lazy_load_1.waitForLazyLoad)({
|
|
54
67
|
context: driver.currentContext,
|
|
@@ -69,6 +82,7 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
69
82
|
},
|
|
70
83
|
logger,
|
|
71
84
|
});
|
|
85
|
+
transformedRenderers.push(...uniqueRenderers);
|
|
72
86
|
screenshots.forEach(({ calculatedRegions, ...baseTarget }) => {
|
|
73
87
|
baseTargets.push(baseTarget);
|
|
74
88
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions }));
|
|
@@ -82,17 +96,7 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
82
96
|
});
|
|
83
97
|
const screenshots = await nmlClient.takeScreenshots({
|
|
84
98
|
settings: {
|
|
85
|
-
renderers: uniqueRenderers
|
|
86
|
-
var _a, _b;
|
|
87
|
-
var _c, _d;
|
|
88
|
-
if (utils.types.has(renderer, 'iosDeviceInfo')) {
|
|
89
|
-
(_a = (_c = renderer.iosDeviceInfo).version) !== null && _a !== void 0 ? _a : (_c.version = environment.platformVersion);
|
|
90
|
-
}
|
|
91
|
-
else if (utils.types.has(renderer, 'androidDeviceInfo')) {
|
|
92
|
-
(_b = (_d = renderer.androidDeviceInfo).version) !== null && _b !== void 0 ? _b : (_d.version = environment.platformVersion);
|
|
93
|
-
}
|
|
94
|
-
return renderer;
|
|
95
|
-
}),
|
|
99
|
+
renderers: uniqueRenderers,
|
|
96
100
|
fully: settings.fully,
|
|
97
101
|
stitchMode: settings.stitchMode,
|
|
98
102
|
hideScrollbars: settings.hideScrollbars,
|
|
@@ -105,18 +109,19 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
105
109
|
},
|
|
106
110
|
logger,
|
|
107
111
|
});
|
|
108
|
-
screenshots.forEach(({ calculatedRegions: _calculatedRegions, renderEnvironment, ...baseTarget }
|
|
109
|
-
|
|
112
|
+
screenshots.forEach(({ calculatedRegions: _calculatedRegions, renderEnvironment, ...baseTarget }) => {
|
|
113
|
+
transformedRenderers.push({ environment: renderEnvironment });
|
|
110
114
|
baseTargets.push({ ...baseTarget, isTransformed: true });
|
|
111
115
|
baseSettings.push(getBaseCheckSettings({ calculatedRegions: [] }));
|
|
112
116
|
});
|
|
113
117
|
}
|
|
114
118
|
}
|
|
115
119
|
else {
|
|
120
|
+
transformedRenderers.push(...uniqueRenderers);
|
|
116
121
|
baseTargets.push(target);
|
|
117
122
|
baseSettings.push(settings);
|
|
118
123
|
}
|
|
119
|
-
const promises =
|
|
124
|
+
const promises = transformedRenderers.map(async (renderer, index) => {
|
|
120
125
|
const rendererLogger = logger.extend({ tags: [`renderer-${utils.general.shortid()}`] });
|
|
121
126
|
try {
|
|
122
127
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
@@ -153,11 +158,11 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
153
158
|
throw error;
|
|
154
159
|
}
|
|
155
160
|
});
|
|
156
|
-
|
|
157
|
-
const key =
|
|
161
|
+
transformedRenderers.forEach((renderer, index) => {
|
|
162
|
+
const key = (0, extract_renderer_key_1.extractRendererKey)(renderer);
|
|
158
163
|
let item = eyes.storage.get(key);
|
|
159
164
|
if (!item) {
|
|
160
|
-
item = {
|
|
165
|
+
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
161
166
|
eyes.storage.set(key, item);
|
|
162
167
|
}
|
|
163
168
|
item.jobs.push(promises[index]);
|
|
@@ -24,18 +24,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeGetBaseEyes = void 0;
|
|
27
|
+
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
27
28
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
29
|
function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger, }) {
|
|
29
30
|
const getBaseEyesWithCache = utils.general.wrap(getBaseEyes, (getBaseEyes, options) => {
|
|
30
|
-
const key =
|
|
31
|
+
const key = (0, extract_renderer_key_1.extractRendererKey)(options.settings.renderer);
|
|
31
32
|
let item = eyes.storage.get(key);
|
|
32
33
|
if (!item) {
|
|
33
|
-
item = {
|
|
34
|
+
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
34
35
|
eyes.storage.set(key, item);
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
item.eyes
|
|
38
|
-
}
|
|
37
|
+
if (!item.eyes.settled)
|
|
38
|
+
item.eyes.resolve(getBaseEyes(options));
|
|
39
39
|
return item.eyes;
|
|
40
40
|
});
|
|
41
41
|
return getBaseEyesWithCache;
|
|
@@ -49,6 +49,7 @@ function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger,
|
|
|
49
49
|
else {
|
|
50
50
|
// NOTE: ios and android handled by nml-client
|
|
51
51
|
// TODO: chrome emulation, desktop
|
|
52
|
+
environment = { renderer: settings.renderer };
|
|
52
53
|
}
|
|
53
54
|
return eyes.core.base.openEyes({
|
|
54
55
|
settings: {
|
|
@@ -33,6 +33,7 @@ const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
|
33
33
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
34
34
|
const generate_safe_selectors_1 = require("./utils/generate-safe-selectors");
|
|
35
35
|
const uniquify_renderers_1 = require("../automation/utils/uniquify-renderers");
|
|
36
|
+
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
36
37
|
const abort_error_1 = require("../errors/abort-error");
|
|
37
38
|
const utils = __importStar(require("@applitools/utils"));
|
|
38
39
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -264,10 +265,10 @@ function makeCheckAndClose({ eyes, target: defaultTarget, renderers: defaultRend
|
|
|
264
265
|
}
|
|
265
266
|
});
|
|
266
267
|
uniqueRenderers.forEach((renderer, index) => {
|
|
267
|
-
const key =
|
|
268
|
+
const key = (0, extract_renderer_key_1.extractRendererKey)(renderer);
|
|
268
269
|
let item = eyes.storage.get(key);
|
|
269
270
|
if (!item) {
|
|
270
|
-
item = {
|
|
271
|
+
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
271
272
|
eyes.storage.set(key, item);
|
|
272
273
|
}
|
|
273
274
|
item.jobs.push(promises[index]);
|
package/dist/ufg/check.js
CHANGED
|
@@ -33,6 +33,7 @@ const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
|
33
33
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
34
34
|
const generate_safe_selectors_1 = require("./utils/generate-safe-selectors");
|
|
35
35
|
const uniquify_renderers_1 = require("../automation/utils/uniquify-renderers");
|
|
36
|
+
const extract_renderer_key_1 = require("../automation/utils/extract-renderer-key");
|
|
36
37
|
const abort_error_1 = require("../errors/abort-error");
|
|
37
38
|
const utils = __importStar(require("@applitools/utils"));
|
|
38
39
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -266,10 +267,10 @@ function makeCheck({ eyes, target: defaultTarget, renderers: defaultRenderers =
|
|
|
266
267
|
}
|
|
267
268
|
});
|
|
268
269
|
uniqueRenderers.forEach((renderer, index) => {
|
|
269
|
-
const key =
|
|
270
|
+
const key = (0, extract_renderer_key_1.extractRendererKey)(renderer);
|
|
270
271
|
let item = eyes.storage.get(key);
|
|
271
272
|
if (!item) {
|
|
272
|
-
item = {
|
|
273
|
+
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
273
274
|
eyes.storage.set(key, item);
|
|
274
275
|
}
|
|
275
276
|
item.jobs.push(promises[index]);
|
|
@@ -30,12 +30,11 @@ function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger,
|
|
|
30
30
|
const key = JSON.stringify(options.settings.renderer);
|
|
31
31
|
let item = eyes.storage.get(key);
|
|
32
32
|
if (!item) {
|
|
33
|
-
item = {
|
|
33
|
+
item = { eyes: utils.promises.makeControlledPromise(), jobs: [] };
|
|
34
34
|
eyes.storage.set(key, item);
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
item.eyes
|
|
38
|
-
}
|
|
36
|
+
if (!item.eyes.settled)
|
|
37
|
+
item.eyes.resolve(getBaseEyes(options));
|
|
39
38
|
return item.eyes;
|
|
40
39
|
});
|
|
41
40
|
return getBaseEyesWithCache;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.1",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -65,20 +65,20 @@
|
|
|
65
65
|
"compress": "GZip"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@applitools/core-base": "1.5.
|
|
68
|
+
"@applitools/core-base": "1.5.3",
|
|
69
69
|
"@applitools/dom-capture": "11.2.2",
|
|
70
70
|
"@applitools/dom-snapshot": "4.7.10",
|
|
71
|
-
"@applitools/driver": "1.
|
|
72
|
-
"@applitools/ec-client": "1.7.
|
|
73
|
-
"@applitools/logger": "2.0.
|
|
74
|
-
"@applitools/nml-client": "1.5.
|
|
75
|
-
"@applitools/req": "1.
|
|
76
|
-
"@applitools/screenshoter": "3.8.
|
|
71
|
+
"@applitools/driver": "1.14.0",
|
|
72
|
+
"@applitools/ec-client": "1.7.7",
|
|
73
|
+
"@applitools/logger": "2.0.10",
|
|
74
|
+
"@applitools/nml-client": "1.5.10",
|
|
75
|
+
"@applitools/req": "1.6.0",
|
|
76
|
+
"@applitools/screenshoter": "3.8.10",
|
|
77
77
|
"@applitools/snippets": "2.4.23",
|
|
78
|
-
"@applitools/socket": "1.1.
|
|
79
|
-
"@applitools/spec-driver-webdriver": "1.0.
|
|
80
|
-
"@applitools/ufg-client": "1.
|
|
81
|
-
"@applitools/utils": "1.
|
|
78
|
+
"@applitools/socket": "1.1.10",
|
|
79
|
+
"@applitools/spec-driver-webdriver": "1.0.44",
|
|
80
|
+
"@applitools/ufg-client": "1.8.0",
|
|
81
|
+
"@applitools/utils": "1.6.0",
|
|
82
82
|
"@types/ws": "8.5.5",
|
|
83
83
|
"abort-controller": "3.0.0",
|
|
84
84
|
"chalk": "4.1.2",
|
|
@@ -89,11 +89,11 @@
|
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@applitools/bongo": "^5.6.1",
|
|
92
|
-
"@applitools/spec-driver-puppeteer": "^1.
|
|
93
|
-
"@applitools/spec-driver-selenium": "^1.5.
|
|
92
|
+
"@applitools/spec-driver-puppeteer": "^1.2.0",
|
|
93
|
+
"@applitools/spec-driver-selenium": "^1.5.58",
|
|
94
94
|
"@applitools/test-server": "^1.2.2",
|
|
95
95
|
"@applitools/test-utils": "^1.5.17",
|
|
96
|
-
"@applitools/tunnel-client": "^1.2.
|
|
96
|
+
"@applitools/tunnel-client": "^1.2.2",
|
|
97
97
|
"@types/node": "^12.20.55",
|
|
98
98
|
"@types/selenium-webdriver": "^4.1.2",
|
|
99
99
|
"@types/yargs": "^17.0.22",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MaybeArray, Size, Region } from '@applitools/utils';
|
|
1
|
+
import type { MaybeArray, Size, Region, ControlledPromise } from '@applitools/utils';
|
|
2
2
|
import type * as BaseCore from '@applitools/core-base/types';
|
|
3
3
|
import { type SpecType, type Driver, type ElementReference, type ContextReference } from '@applitools/driver';
|
|
4
4
|
import { type NMLClient, type NMLClientSettings } from '@applitools/nml-client';
|
|
@@ -112,8 +112,7 @@ export interface Eyes<TSpec extends SpecType> extends BaseCore.Eyes {
|
|
|
112
112
|
}): Promise<TestResult[]>;
|
|
113
113
|
}
|
|
114
114
|
export type EyesStorage = Map<string, {
|
|
115
|
-
|
|
116
|
-
eyes: Promise<BaseCore.Eyes>;
|
|
115
|
+
eyes: ControlledPromise<BaseCore.Eyes>;
|
|
117
116
|
jobs: Promise<void>[];
|
|
118
117
|
}>;
|
|
119
118
|
export interface GetBaseEyesSettings {
|
package/types/types.d.ts
CHANGED
|
@@ -105,8 +105,8 @@ export interface ManagerSettings {
|
|
|
105
105
|
}
|
|
106
106
|
export type Config<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
|
|
107
107
|
open: Partial<Omit<OpenSettings<TType>, 'userCommandId'>>;
|
|
108
|
-
screenshot: Partial<Omit<
|
|
109
|
-
check: Partial<Omit<CheckSettings<TSpec, TType>,
|
|
108
|
+
screenshot: Partial<Omit<AutomationCore.ScreenshotSettings<TSpec>, 'userCommandId'>>;
|
|
109
|
+
check: Partial<Omit<CheckSettings<TSpec, TType>, 'userCommandId'>>;
|
|
110
110
|
close: Partial<Omit<CloseSettings<TType>, 'userCommandId'>>;
|
|
111
111
|
};
|
|
112
112
|
export type OpenSettings<TType extends 'classic' | 'ufg'> = TType extends 'ufg' ? UFGCore.OpenSettings : ClassicCore.OpenSettings;
|
package/types/ufg/core.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ type Options<TSpec extends SpecType> = {
|
|
|
17
17
|
cwd?: string;
|
|
18
18
|
logger?: Logger;
|
|
19
19
|
};
|
|
20
|
-
export declare function makeCore<TSpec extends SpecType>({ spec, clients, base, concurrency, fetchConcurrency, agentId, cwd, logger: defaultLogger, }: Options<TSpec>): Core<TSpec>;
|
|
20
|
+
export declare function makeCore<TSpec extends SpecType = never>({ spec, clients, base, concurrency, fetchConcurrency, agentId, cwd, logger: defaultLogger, }: Options<TSpec>): Core<TSpec>;
|
|
21
21
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Size } from '@applitools/utils';
|
|
2
2
|
import { type Logger } from '@applitools/logger';
|
|
3
3
|
import { type SpecType, type Driver } from '@applitools/driver';
|
|
4
|
-
import { type DomSnapshot, type Renderer
|
|
4
|
+
import { type DomSnapshot, type Renderer } from '@applitools/ufg-client';
|
|
5
5
|
import { type DomSnapshotSettings } from './take-dom-snapshot';
|
|
6
6
|
export * from './take-dom-snapshot';
|
|
7
7
|
export type DomSnapshotsSettings = DomSnapshotSettings & {
|
|
@@ -20,8 +20,8 @@ export declare function takeDomSnapshots<TSpec extends SpecType>({ driver, setti
|
|
|
20
20
|
beforeEachSnapshot?(): void | Promise<void>;
|
|
21
21
|
};
|
|
22
22
|
provides?: {
|
|
23
|
-
getChromeEmulationDevices(): Promise<Record<
|
|
24
|
-
getIOSDevices(): Promise<Record<
|
|
23
|
+
getChromeEmulationDevices(): Promise<Record<string, Record<string, Size>>>;
|
|
24
|
+
getIOSDevices(): Promise<Record<string, Record<string, Size>>>;
|
|
25
25
|
};
|
|
26
26
|
logger: Logger;
|
|
27
27
|
}): Promise<DomSnapshot[]>;
|