@applitools/core 2.3.11 → 2.3.13
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 +13 -0
- package/dist/ufg/check-and-close.js +43 -18
- package/dist/ufg/check.js +43 -18
- package/dist/ufg/core.js +2 -2
- package/dist/ufg/get-base-eyes.js +8 -6
- package/dist/ufg/get-nml-client.js +41 -0
- package/dist/ufg/get-ufg-client.js +38 -0
- package/dist/ufg/open-eyes.js +15 -20
- package/package.json +10 -10
- package/types/ufg/check-and-close.d.ts +1 -3
- package/types/ufg/check.d.ts +1 -3
- package/types/ufg/core.d.ts +6 -2
- package/types/ufg/get-base-eyes.d.ts +8 -7
- package/types/ufg/get-nml-client.d.ts +17 -0
- package/types/ufg/get-ufg-client.d.ts +16 -0
- package/types/ufg/open-eyes.d.ts +7 -3
- package/types/ufg/types.d.ts +10 -2
- package/dist/ufg/utils/take-snapshots.js +0 -37
- package/types/ufg/utils/take-snapshots.d.ts +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 2.3.13 - 2023/3/7
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
### Bug fixes
|
|
9
|
+
- Fixed selector transformation for scroll root elements for ufg
|
|
10
|
+
|
|
11
|
+
## 2.3.12 - 2023/3/7
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
- Update broker url using last response instead of using driver
|
|
15
|
+
### Bug fixes
|
|
16
|
+
- Replaced broker url cache with nml element cache
|
|
17
|
+
|
|
5
18
|
## 2.3.11 - 2023/3/6
|
|
6
19
|
|
|
7
20
|
### Features
|
|
@@ -28,7 +28,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.makeCheckAndClose = void 0;
|
|
30
30
|
const driver_1 = require("@applitools/driver");
|
|
31
|
-
const
|
|
31
|
+
const take_dom_snapshots_1 = require("./utils/take-dom-snapshots");
|
|
32
|
+
const take_vhses_1 = require("./utils/take-vhses");
|
|
32
33
|
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
33
34
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
34
35
|
const generate_safe_selectors_1 = require("./utils/generate-safe-selectors");
|
|
@@ -36,14 +37,15 @@ const uniquify_renderers_1 = require("./utils/uniquify-renderers");
|
|
|
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"));
|
|
39
|
-
function makeCheckAndClose({
|
|
40
|
+
function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
|
|
40
41
|
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
|
|
41
|
-
var _a, _b, _c;
|
|
42
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
42
43
|
logger.log('Command "checkAndClose" is called with settings', settings);
|
|
43
44
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
44
45
|
logger.warn('Command "checkAndClose" was called after test was already aborted');
|
|
45
46
|
throw new abort_error_1.AbortError('Command "checkAndClose" was called after test was already aborted');
|
|
46
47
|
}
|
|
48
|
+
const ufgClient = await eyes.getUFGClient({ logger });
|
|
47
49
|
const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
|
|
48
50
|
settings,
|
|
49
51
|
});
|
|
@@ -52,6 +54,7 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
52
54
|
let snapshotTitle;
|
|
53
55
|
let userAgent;
|
|
54
56
|
let regionToTarget;
|
|
57
|
+
let scrollRootSelector;
|
|
55
58
|
let selectorsToCalculate;
|
|
56
59
|
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
|
|
57
60
|
if ((0, driver_1.isDriver)(target, spec)) {
|
|
@@ -72,30 +75,40 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
72
75
|
context: driver.currentContext,
|
|
73
76
|
elementReferences: [
|
|
74
77
|
...(elementReferenceToTarget ? [elementReferenceToTarget] : []),
|
|
78
|
+
...(settings.scrollRootElement ? [settings.scrollRootElement] : []),
|
|
75
79
|
...elementReferencesToCalculate,
|
|
76
80
|
],
|
|
77
81
|
});
|
|
78
82
|
cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
|
|
83
|
+
selectorsToCalculate = generated.selectors;
|
|
79
84
|
if (elementReferenceToTarget) {
|
|
80
|
-
if (!((_b =
|
|
85
|
+
if (!((_b = selectorsToCalculate[0]) === null || _b === void 0 ? void 0 : _b.safeSelector))
|
|
81
86
|
throw new Error('Target element not found');
|
|
82
|
-
regionToTarget =
|
|
83
|
-
selectorsToCalculate =
|
|
87
|
+
regionToTarget = selectorsToCalculate[0].safeSelector;
|
|
88
|
+
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
84
89
|
}
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
if (settings.scrollRootElement) {
|
|
91
|
+
scrollRootSelector = (_c = selectorsToCalculate[0].safeSelector) !== null && _c !== void 0 ? _c : undefined;
|
|
92
|
+
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
87
93
|
}
|
|
88
94
|
}
|
|
95
|
+
else {
|
|
96
|
+
regionToTarget = (0, driver_1.isSelector)(elementReferenceToTarget)
|
|
97
|
+
? (_e = (_d = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _d === void 0 ? void 0 : _d.call(spec, settings.scrollRootElement)) !== null && _e !== void 0 ? _e : undefined
|
|
98
|
+
: undefined;
|
|
99
|
+
scrollRootSelector = (0, driver_1.isSelector)(settings.scrollRootElement)
|
|
100
|
+
? (_g = (_f = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _f === void 0 ? void 0 : _f.call(spec, settings.scrollRootElement)) !== null && _g !== void 0 ? _g : undefined
|
|
101
|
+
: undefined;
|
|
102
|
+
}
|
|
89
103
|
const currentContext = driver.currentContext;
|
|
90
|
-
|
|
91
|
-
driver,
|
|
104
|
+
const snapshotOptions = {
|
|
92
105
|
settings: {
|
|
93
106
|
...eyes.test.server,
|
|
94
107
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
95
108
|
disableBrowserFetching: settings.disableBrowserFetching,
|
|
96
109
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
97
110
|
renderers: uniqueRenderers,
|
|
98
|
-
skipResources:
|
|
111
|
+
skipResources: ufgClient.getCachedResourceUrls(),
|
|
99
112
|
},
|
|
100
113
|
hooks: {
|
|
101
114
|
async beforeSnapshots() {
|
|
@@ -109,11 +122,22 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
109
122
|
},
|
|
110
123
|
},
|
|
111
124
|
provides: {
|
|
112
|
-
getChromeEmulationDevices:
|
|
113
|
-
getIOSDevices:
|
|
125
|
+
getChromeEmulationDevices: ufgClient.getChromeEmulationDevices,
|
|
126
|
+
getIOSDevices: ufgClient.getIOSDevices,
|
|
114
127
|
},
|
|
115
|
-
|
|
116
|
-
|
|
128
|
+
};
|
|
129
|
+
if (driver.isWeb) {
|
|
130
|
+
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const nmlClient = await eyes.getNMLClient({ driver, logger });
|
|
134
|
+
if (nmlClient) {
|
|
135
|
+
snapshots = (await nmlClient.takeSnapshots({ ...snapshotOptions, logger }));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
snapshots = await (0, take_vhses_1.takeVHSes)({ driver, ...snapshotOptions, logger });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
117
141
|
await currentContext.focus();
|
|
118
142
|
snapshotUrl = await driver.getUrl();
|
|
119
143
|
snapshotTitle = await driver.getTitle();
|
|
@@ -123,7 +147,7 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
123
147
|
snapshots = !utils.types.isArray(target) ? Array(uniqueRenderers.length).fill(target) : target;
|
|
124
148
|
snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
|
|
125
149
|
}
|
|
126
|
-
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (
|
|
150
|
+
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_h = elementReferenceToTarget) !== null && _h !== void 0 ? _h : settings.region);
|
|
127
151
|
selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
|
|
128
152
|
originalSelector: selector,
|
|
129
153
|
safeSelector: selector,
|
|
@@ -140,7 +164,7 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
140
164
|
}
|
|
141
165
|
const { cookies, ...snapshot } = snapshots[index];
|
|
142
166
|
const snapshotType = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
|
|
143
|
-
const renderTargetPromise =
|
|
167
|
+
const renderTargetPromise = ufgClient.createRenderTarget({
|
|
144
168
|
snapshot,
|
|
145
169
|
settings: {
|
|
146
170
|
renderer,
|
|
@@ -170,11 +194,12 @@ function makeCheckAndClose({ spec, eyes, client, signal, target: defaultTarget,
|
|
|
170
194
|
logger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
|
|
171
195
|
throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
|
|
172
196
|
}
|
|
173
|
-
const { renderId, selectorRegions, ...baseTarget } = await
|
|
197
|
+
const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
|
|
174
198
|
target: renderTarget,
|
|
175
199
|
settings: {
|
|
176
200
|
...settings,
|
|
177
201
|
region: regionToTarget,
|
|
202
|
+
scrollRootElement: scrollRootSelector,
|
|
178
203
|
selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
|
|
179
204
|
includeFullPageSize: Boolean(settings.pageId),
|
|
180
205
|
type: snapshotType,
|
package/dist/ufg/check.js
CHANGED
|
@@ -28,7 +28,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.makeCheck = void 0;
|
|
30
30
|
const driver_1 = require("@applitools/driver");
|
|
31
|
-
const
|
|
31
|
+
const take_dom_snapshots_1 = require("./utils/take-dom-snapshots");
|
|
32
|
+
const take_vhses_1 = require("./utils/take-vhses");
|
|
32
33
|
const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
|
|
33
34
|
const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
|
|
34
35
|
const generate_safe_selectors_1 = require("./utils/generate-safe-selectors");
|
|
@@ -36,14 +37,15 @@ const uniquify_renderers_1 = require("./utils/uniquify-renderers");
|
|
|
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"));
|
|
39
|
-
function makeCheck({ eyes,
|
|
40
|
+
function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
|
|
40
41
|
return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
|
|
41
|
-
var _a, _b, _c, _d, _e;
|
|
42
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
42
43
|
logger.log('Command "check" is called with settings', settings);
|
|
43
44
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
44
45
|
logger.warn('Command "check" was called after test was already aborted');
|
|
45
46
|
throw new abort_error_1.AbortError('Command "check" was called after test was already aborted');
|
|
46
47
|
}
|
|
48
|
+
const ufgClient = await eyes.getUFGClient({ logger });
|
|
47
49
|
const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
|
|
48
50
|
settings,
|
|
49
51
|
});
|
|
@@ -52,6 +54,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
52
54
|
let snapshotTitle;
|
|
53
55
|
let userAgent;
|
|
54
56
|
let regionToTarget;
|
|
57
|
+
let scrollRootSelector;
|
|
55
58
|
let selectorsToCalculate;
|
|
56
59
|
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
|
|
57
60
|
const driver = spec && (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
|
|
@@ -73,30 +76,40 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
73
76
|
context: driver.currentContext,
|
|
74
77
|
elementReferences: [
|
|
75
78
|
...(elementReferenceToTarget ? [elementReferenceToTarget] : []),
|
|
79
|
+
...(settings.scrollRootElement ? [settings.scrollRootElement] : []),
|
|
76
80
|
...elementReferencesToCalculate,
|
|
77
81
|
],
|
|
78
82
|
});
|
|
79
83
|
cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
|
|
84
|
+
selectorsToCalculate = generated.selectors;
|
|
80
85
|
if (elementReferenceToTarget) {
|
|
81
|
-
if (!((_c =
|
|
86
|
+
if (!((_c = selectorsToCalculate[0]) === null || _c === void 0 ? void 0 : _c.safeSelector))
|
|
82
87
|
throw new Error('Target element not found');
|
|
83
|
-
regionToTarget =
|
|
84
|
-
selectorsToCalculate =
|
|
88
|
+
regionToTarget = selectorsToCalculate[0].safeSelector;
|
|
89
|
+
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
85
90
|
}
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
if (settings.scrollRootElement) {
|
|
92
|
+
scrollRootSelector = (_d = selectorsToCalculate[0].safeSelector) !== null && _d !== void 0 ? _d : undefined;
|
|
93
|
+
selectorsToCalculate = selectorsToCalculate.slice(1);
|
|
88
94
|
}
|
|
89
95
|
}
|
|
96
|
+
else {
|
|
97
|
+
regionToTarget = (0, driver_1.isSelector)(elementReferenceToTarget)
|
|
98
|
+
? (_f = (_e = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _e === void 0 ? void 0 : _e.call(spec, settings.scrollRootElement)) !== null && _f !== void 0 ? _f : undefined
|
|
99
|
+
: undefined;
|
|
100
|
+
scrollRootSelector = (0, driver_1.isSelector)(settings.scrollRootElement)
|
|
101
|
+
? (_h = (_g = spec === null || spec === void 0 ? void 0 : spec.untransformSelector) === null || _g === void 0 ? void 0 : _g.call(spec, settings.scrollRootElement)) !== null && _h !== void 0 ? _h : undefined
|
|
102
|
+
: undefined;
|
|
103
|
+
}
|
|
90
104
|
const currentContext = driver.currentContext;
|
|
91
|
-
|
|
92
|
-
driver,
|
|
105
|
+
const snapshotOptions = {
|
|
93
106
|
settings: {
|
|
94
107
|
...eyes.test.server,
|
|
95
108
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
96
109
|
disableBrowserFetching: settings.disableBrowserFetching,
|
|
97
110
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
98
111
|
renderers: uniqueRenderers,
|
|
99
|
-
skipResources:
|
|
112
|
+
skipResources: ufgClient.getCachedResourceUrls(),
|
|
100
113
|
},
|
|
101
114
|
hooks: {
|
|
102
115
|
async beforeSnapshots() {
|
|
@@ -110,11 +123,22 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
110
123
|
},
|
|
111
124
|
},
|
|
112
125
|
provides: {
|
|
113
|
-
getChromeEmulationDevices:
|
|
114
|
-
getIOSDevices:
|
|
126
|
+
getChromeEmulationDevices: ufgClient.getChromeEmulationDevices,
|
|
127
|
+
getIOSDevices: ufgClient.getIOSDevices,
|
|
115
128
|
},
|
|
116
|
-
|
|
117
|
-
|
|
129
|
+
};
|
|
130
|
+
if (driver.isWeb) {
|
|
131
|
+
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const nmlClient = await eyes.getNMLClient({ driver, logger });
|
|
135
|
+
if (nmlClient) {
|
|
136
|
+
snapshots = (await nmlClient.takeSnapshots({ ...snapshotOptions, logger }));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
snapshots = await (0, take_vhses_1.takeVHSes)({ driver, ...snapshotOptions, logger });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
118
142
|
await currentContext.focus();
|
|
119
143
|
snapshotUrl = await driver.getUrl();
|
|
120
144
|
snapshotTitle = await driver.getTitle();
|
|
@@ -124,7 +148,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
124
148
|
snapshots = !utils.types.isArray(target) ? Array(uniqueRenderers.length).fill(target) : target;
|
|
125
149
|
snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
|
|
126
150
|
}
|
|
127
|
-
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (
|
|
151
|
+
regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_j = elementReferenceToTarget) !== null && _j !== void 0 ? _j : settings.region);
|
|
128
152
|
selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
|
|
129
153
|
originalSelector: selector,
|
|
130
154
|
safeSelector: selector,
|
|
@@ -141,7 +165,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
141
165
|
}
|
|
142
166
|
const { cookies, ...snapshot } = snapshots[index];
|
|
143
167
|
const snapshotType = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
|
|
144
|
-
const renderTargetPromise =
|
|
168
|
+
const renderTargetPromise = ufgClient.createRenderTarget({
|
|
145
169
|
snapshot,
|
|
146
170
|
settings: {
|
|
147
171
|
renderer,
|
|
@@ -171,11 +195,12 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
|
|
|
171
195
|
logger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
|
|
172
196
|
throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
|
|
173
197
|
}
|
|
174
|
-
const { renderId, selectorRegions, ...baseTarget } = await
|
|
198
|
+
const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
|
|
175
199
|
target: renderTarget,
|
|
176
200
|
settings: {
|
|
177
201
|
...settings,
|
|
178
202
|
region: regionToTarget,
|
|
203
|
+
scrollRootElement: scrollRootSelector,
|
|
179
204
|
selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
|
|
180
205
|
includeFullPageSize: Boolean(settings.pageId),
|
|
181
206
|
type: snapshotType,
|
package/dist/ufg/core.js
CHANGED
|
@@ -37,7 +37,7 @@ const extract_text_1 = require("../automation/extract-text");
|
|
|
37
37
|
const open_eyes_1 = require("./open-eyes");
|
|
38
38
|
const utils = __importStar(require("@applitools/utils"));
|
|
39
39
|
const throat_1 = __importDefault(require("throat"));
|
|
40
|
-
function makeCore({ concurrency, spec,
|
|
40
|
+
function makeCore({ concurrency, spec, clients, core, agentId = 'core-ufg', cwd = process.cwd(), logger, }) {
|
|
41
41
|
var _a;
|
|
42
42
|
logger = (_a = logger === null || logger === void 0 ? void 0 : logger.extend({ label: 'core-ufg' })) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ label: 'core-ufg' });
|
|
43
43
|
logger.log(`Core ufg is initialized ${core ? 'with' : 'without'} custom base core`);
|
|
@@ -78,7 +78,7 @@ function makeCore({ concurrency, spec, client, core, agentId = 'core-ufg', cwd =
|
|
|
78
78
|
locate: (0, locate_1.makeLocate)({ spec, core, logger }),
|
|
79
79
|
locateText: (0, locate_text_1.makeLocateText)({ spec, core, logger }),
|
|
80
80
|
extractText: (0, extract_text_1.makeExtractText)({ spec, core, logger }),
|
|
81
|
-
openEyes: (0, open_eyes_1.makeOpenEyes)({ spec,
|
|
81
|
+
openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, clients, core, logger }),
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
84
|
exports.makeCore = makeCore;
|
|
@@ -25,21 +25,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeGetBaseEyes = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
|
-
function makeGetBaseEyes({ settings: defaultSettings, core,
|
|
28
|
+
function makeGetBaseEyes({ eyes, settings: defaultSettings, core, baseEyes, logger: defaultLogger }) {
|
|
29
29
|
const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, ([options]) => options === null || options === void 0 ? void 0 : options.settings);
|
|
30
|
-
if (
|
|
31
|
-
|
|
30
|
+
if (baseEyes) {
|
|
31
|
+
baseEyes.forEach(baseEyes => getBaseEyesWithCache.setCachedValue(baseEyes.test.rendererInfo, Promise.resolve([baseEyes])));
|
|
32
|
+
}
|
|
32
33
|
return getBaseEyesWithCache;
|
|
33
34
|
async function getBaseEyes({ settings, logger = defaultLogger, } = {}) {
|
|
34
35
|
logger.log(`Command "getBaseEyes" is called with settings`, settings);
|
|
35
36
|
if (!settings)
|
|
36
37
|
throw new Error('');
|
|
37
|
-
const
|
|
38
|
-
const
|
|
38
|
+
const ufgClient = await eyes.getUFGClient({ logger });
|
|
39
|
+
const environment = await ufgClient.bookRenderer({ settings });
|
|
40
|
+
const eyesBase = await core.openEyes({
|
|
39
41
|
settings: { ...defaultSettings, environment: { ...defaultSettings.environment, ...environment } },
|
|
40
42
|
logger,
|
|
41
43
|
});
|
|
42
|
-
return [
|
|
44
|
+
return [eyesBase];
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
exports.makeGetBaseEyes = makeGetBaseEyes;
|
|
@@ -0,0 +1,41 @@
|
|
|
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.makeGetNMLClient = void 0;
|
|
27
|
+
const nml_client_1 = require("@applitools/nml-client");
|
|
28
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
29
|
+
function makeGetNMLClient({ config, client, logger: defaultLogger }) {
|
|
30
|
+
const getBaseEyesWithCache = utils.general.cachify(getNMLClient, () => 'default');
|
|
31
|
+
if (client)
|
|
32
|
+
getBaseEyesWithCache.setCachedValue('default', Promise.resolve(client));
|
|
33
|
+
return getBaseEyesWithCache;
|
|
34
|
+
async function getNMLClient({ driver, logger = defaultLogger }) {
|
|
35
|
+
const brokerUrl = await driver.extractBrokerUrl();
|
|
36
|
+
if (!brokerUrl)
|
|
37
|
+
return null;
|
|
38
|
+
return (0, nml_client_1.makeNMLClient)({ config: { brokerUrl, ...config }, logger });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.makeGetNMLClient = makeGetNMLClient;
|
|
@@ -0,0 +1,38 @@
|
|
|
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.makeGetUFGClient = void 0;
|
|
27
|
+
const ufg_client_1 = require("@applitools/ufg-client");
|
|
28
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
29
|
+
function makeGetUFGClient({ config, concurrency, client, logger: defaultLogger }) {
|
|
30
|
+
const getBaseEyesWithCache = utils.general.cachify(getUFGClient, () => 'default');
|
|
31
|
+
if (client)
|
|
32
|
+
getBaseEyesWithCache.setCachedValue('default', Promise.resolve(client));
|
|
33
|
+
return getBaseEyesWithCache;
|
|
34
|
+
async function getUFGClient({ logger = defaultLogger } = {}) {
|
|
35
|
+
return (0, ufg_client_1.makeUFGClient)({ config, concurrency, logger });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.makeGetUFGClient = makeGetUFGClient;
|
package/dist/ufg/open-eyes.js
CHANGED
|
@@ -25,7 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.makeOpenEyes = void 0;
|
|
27
27
|
const driver_1 = require("@applitools/driver");
|
|
28
|
-
const
|
|
28
|
+
const get_ufg_client_1 = require("./get-ufg-client");
|
|
29
|
+
const get_nml_client_1 = require("./get-nml-client");
|
|
29
30
|
const get_base_eyes_1 = require("./get-base-eyes");
|
|
30
31
|
const check_1 = require("./check");
|
|
31
32
|
const check_and_close_1 = require("./check-and-close");
|
|
@@ -34,9 +35,9 @@ const abort_1 = require("./abort");
|
|
|
34
35
|
const get_results_1 = require("./get-results");
|
|
35
36
|
const abort_controller_1 = require("abort-controller");
|
|
36
37
|
const utils = __importStar(require("@applitools/utils"));
|
|
37
|
-
function makeOpenEyes({ core,
|
|
38
|
+
function makeOpenEyes({ core, clients, spec, logger: defaultLogger }) {
|
|
38
39
|
return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
|
|
39
|
-
var _a
|
|
40
|
+
var _a;
|
|
40
41
|
logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), eyes ? 'predefined eyes' : '');
|
|
41
42
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger }));
|
|
42
43
|
if (driver && !eyes) {
|
|
@@ -52,14 +53,8 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
|
|
|
52
53
|
}
|
|
53
54
|
const controller = new abort_controller_1.AbortController();
|
|
54
55
|
const account = await core.getAccountInfo({ settings, logger });
|
|
55
|
-
client !== null && client !== void 0 ? client : (client = (0, ufg_client_1.makeUFGClient)({
|
|
56
|
-
config: { ...account.ufg, ...account, proxy: settings.proxy },
|
|
57
|
-
concurrency: (_b = settings.renderConcurrency) !== null && _b !== void 0 ? _b : 5,
|
|
58
|
-
logger,
|
|
59
|
-
}));
|
|
60
|
-
const getBaseEyes = (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, core, client, logger });
|
|
61
56
|
return utils.general.extend({}, eyes => {
|
|
62
|
-
var _a;
|
|
57
|
+
var _a, _b;
|
|
63
58
|
const storage = new Map();
|
|
64
59
|
let running = true;
|
|
65
60
|
return {
|
|
@@ -74,9 +69,16 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
|
|
|
74
69
|
get running() {
|
|
75
70
|
return running;
|
|
76
71
|
},
|
|
77
|
-
|
|
72
|
+
getUFGClient: (0, get_ufg_client_1.makeGetUFGClient)({
|
|
73
|
+
config: { ...account.ufg, ...account, proxy: settings.proxy },
|
|
74
|
+
concurrency: (_b = settings.renderConcurrency) !== null && _b !== void 0 ? _b : 5,
|
|
75
|
+
client: clients === null || clients === void 0 ? void 0 : clients.ufg,
|
|
76
|
+
logger,
|
|
77
|
+
}),
|
|
78
|
+
getNMLClient: (0, get_nml_client_1.makeGetNMLClient)({ config: settings, client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
|
|
79
|
+
getBaseEyes: (0, get_base_eyes_1.makeGetBaseEyes)({ eyes, settings, core, logger }),
|
|
78
80
|
// check with indexing and storage
|
|
79
|
-
check: utils.general.wrap((0, check_1.makeCheck)({ eyes,
|
|
81
|
+
check: utils.general.wrap((0, check_1.makeCheck)({ eyes, target: driver, spec, signal: controller.signal, logger }), async (check, options = {}) => {
|
|
80
82
|
const results = await check(options);
|
|
81
83
|
results.forEach(result => {
|
|
82
84
|
var _a;
|
|
@@ -85,14 +87,7 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
|
|
|
85
87
|
});
|
|
86
88
|
return results;
|
|
87
89
|
}),
|
|
88
|
-
checkAndClose: utils.general.wrap((0, check_and_close_1.makeCheckAndClose)({
|
|
89
|
-
eyes,
|
|
90
|
-
client: client,
|
|
91
|
-
target: driver,
|
|
92
|
-
spec,
|
|
93
|
-
signal: controller.signal,
|
|
94
|
-
logger,
|
|
95
|
-
}), async (checkAndClose, options = {}) => {
|
|
90
|
+
checkAndClose: utils.general.wrap((0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, signal: controller.signal, logger }), async (checkAndClose, options = {}) => {
|
|
96
91
|
const results = await checkAndClose(options);
|
|
97
92
|
results.forEach(result => {
|
|
98
93
|
var _a;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.13",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -76,16 +76,16 @@
|
|
|
76
76
|
"@applitools/core-base": "1.1.39",
|
|
77
77
|
"@applitools/dom-capture": "11.2.1",
|
|
78
78
|
"@applitools/dom-snapshot": "4.7.5",
|
|
79
|
-
"@applitools/driver": "1.11.
|
|
80
|
-
"@applitools/ec-client": "1.2.
|
|
79
|
+
"@applitools/driver": "1.11.35",
|
|
80
|
+
"@applitools/ec-client": "1.2.13",
|
|
81
81
|
"@applitools/logger": "1.1.46",
|
|
82
|
-
"@applitools/nml-client": "1.3.
|
|
82
|
+
"@applitools/nml-client": "1.3.38",
|
|
83
83
|
"@applitools/req": "1.1.30",
|
|
84
|
-
"@applitools/screenshoter": "3.7.
|
|
84
|
+
"@applitools/screenshoter": "3.7.29",
|
|
85
85
|
"@applitools/snippets": "2.4.15",
|
|
86
86
|
"@applitools/socket": "1.0.8",
|
|
87
|
-
"@applitools/spec-driver-webdriver": "1.0.
|
|
88
|
-
"@applitools/ufg-client": "1.2.
|
|
87
|
+
"@applitools/spec-driver-webdriver": "1.0.15",
|
|
88
|
+
"@applitools/ufg-client": "1.2.1",
|
|
89
89
|
"@applitools/utils": "1.3.30",
|
|
90
90
|
"@types/ws": "8.5.4",
|
|
91
91
|
"abort-controller": "3.0.0",
|
|
@@ -99,9 +99,9 @@
|
|
|
99
99
|
"devDependencies": {
|
|
100
100
|
"@applitools/bongo": "^2.2.5",
|
|
101
101
|
"@applitools/sdk-coverage-tests": "^2.7.12",
|
|
102
|
-
"@applitools/spec-driver-puppeteer": "^1.1.
|
|
103
|
-
"@applitools/spec-driver-selenium": "^1.5.
|
|
104
|
-
"@applitools/spec-driver-webdriverio": "^1.4.
|
|
102
|
+
"@applitools/spec-driver-puppeteer": "^1.1.47",
|
|
103
|
+
"@applitools/spec-driver-selenium": "^1.5.32",
|
|
104
|
+
"@applitools/spec-driver-webdriverio": "^1.4.30",
|
|
105
105
|
"@applitools/test-server": "^1.1.26",
|
|
106
106
|
"@applitools/test-utils": "^1.5.12",
|
|
107
107
|
"@types/mocha": "^9.1.1",
|
|
@@ -2,17 +2,15 @@ import type { Region } from '@applitools/utils';
|
|
|
2
2
|
import type { DriverTarget, Target, Eyes, CheckSettings, TestResult, CloseSettings } from './types';
|
|
3
3
|
import { type AbortSignal } from 'abort-controller';
|
|
4
4
|
import { type Logger } from '@applitools/logger';
|
|
5
|
-
import { type UFGClient } from '@applitools/ufg-client';
|
|
6
5
|
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
7
6
|
type Options<TSpec extends SpecType> = {
|
|
8
7
|
eyes: Eyes<TSpec>;
|
|
9
|
-
client: UFGClient;
|
|
10
8
|
target?: DriverTarget<TSpec>;
|
|
11
9
|
spec?: SpecDriver<TSpec>;
|
|
12
10
|
signal?: AbortSignal;
|
|
13
11
|
logger: Logger;
|
|
14
12
|
};
|
|
15
|
-
export declare function makeCheckAndClose<TSpec extends SpecType>({
|
|
13
|
+
export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, spec, signal, logger: defaultLogger, }: Options<TSpec>): ({ target, settings, logger, }: {
|
|
16
14
|
target?: Target<TSpec> | undefined;
|
|
17
15
|
settings?: (import("@applitools/core-base").CheckSettings<Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
|
|
18
16
|
renderers?: import("@applitools/ufg-client").Renderer[] | undefined;
|
package/types/ufg/check.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type { DriverTarget, Target, Eyes, CheckSettings, CheckResult } from './types';
|
|
2
2
|
import { type AbortSignal } from 'abort-controller';
|
|
3
3
|
import { type Logger } from '@applitools/logger';
|
|
4
|
-
import { type UFGClient } from '@applitools/ufg-client';
|
|
5
4
|
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
6
5
|
type Options<TSpec extends SpecType> = {
|
|
7
6
|
eyes: Eyes<TSpec>;
|
|
8
|
-
client: UFGClient;
|
|
9
7
|
target?: DriverTarget<TSpec>;
|
|
10
8
|
spec?: SpecDriver<TSpec>;
|
|
11
9
|
signal?: AbortSignal;
|
|
12
10
|
logger: Logger;
|
|
13
11
|
};
|
|
14
|
-
export declare function makeCheck<TSpec extends SpecType>({ eyes,
|
|
12
|
+
export declare function makeCheck<TSpec extends SpecType>({ eyes, target: defaultTarget, spec, signal, logger: defaultLogger, }: Options<TSpec>): ({ target, settings, logger, }: {
|
|
15
13
|
settings?: CheckSettings<TSpec> | undefined;
|
|
16
14
|
target?: Target<TSpec> | undefined;
|
|
17
15
|
logger?: Logger | undefined;
|
package/types/ufg/core.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import type { Core } from './types';
|
|
2
2
|
import type { Core as BaseCore } from '@applitools/core-base';
|
|
3
3
|
import { type UFGClient } from '@applitools/ufg-client';
|
|
4
|
+
import { type NMLClient } from '@applitools/nml-client';
|
|
4
5
|
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
5
6
|
import { type Logger } from '@applitools/logger';
|
|
6
7
|
type Options<TSpec extends SpecType> = {
|
|
7
8
|
concurrency: number;
|
|
8
9
|
spec?: SpecDriver<TSpec>;
|
|
9
|
-
|
|
10
|
+
clients?: {
|
|
11
|
+
ufg?: UFGClient;
|
|
12
|
+
nml?: NMLClient;
|
|
13
|
+
};
|
|
10
14
|
core?: BaseCore;
|
|
11
15
|
agentId?: string;
|
|
12
16
|
cwd?: string;
|
|
13
17
|
logger?: Logger;
|
|
14
18
|
};
|
|
15
|
-
export declare function makeCore<TSpec extends SpecType>({ concurrency, spec,
|
|
19
|
+
export declare function makeCore<TSpec extends SpecType>({ concurrency, spec, clients, core, agentId, cwd, logger, }: Options<TSpec>): Core<TSpec>;
|
|
16
20
|
export {};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import type { OpenSettings } from './types';
|
|
2
|
-
import type { Core as
|
|
1
|
+
import type { Eyes, OpenSettings } from './types';
|
|
2
|
+
import type { Core as BaseCore, Eyes as EyesBase } from '@applitools/core-base';
|
|
3
|
+
import { type SpecType } from '@applitools/driver';
|
|
3
4
|
import { type Logger } from '@applitools/logger';
|
|
4
|
-
import { type
|
|
5
|
+
import { type Renderer } from '@applitools/ufg-client';
|
|
5
6
|
type Options = {
|
|
7
|
+
eyes: Eyes<SpecType>;
|
|
6
8
|
settings: OpenSettings;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
client: UFGClient;
|
|
9
|
+
core: BaseCore;
|
|
10
|
+
baseEyes?: EyesBase[];
|
|
10
11
|
logger: Logger;
|
|
11
12
|
};
|
|
12
|
-
export declare function makeGetBaseEyes({ settings: defaultSettings, core,
|
|
13
|
+
export declare function makeGetBaseEyes({ eyes, settings: defaultSettings, core, baseEyes, logger: defaultLogger }: Options): (({ settings, logger, }?: {
|
|
13
14
|
settings?: {
|
|
14
15
|
type: 'web' | 'native';
|
|
15
16
|
renderer: Renderer;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type SpecType, type Driver } from '@applitools/driver';
|
|
2
|
+
import { type Logger } from '@applitools/logger';
|
|
3
|
+
import { type NMLClient, type NMLRequestsConfig } from '@applitools/nml-client';
|
|
4
|
+
type Options = {
|
|
5
|
+
config: Omit<NMLRequestsConfig, 'brokerUrl'>;
|
|
6
|
+
client?: NMLClient;
|
|
7
|
+
logger: Logger;
|
|
8
|
+
};
|
|
9
|
+
export declare function makeGetNMLClient({ config, client, logger: defaultLogger }: Options): (({ driver, logger }: {
|
|
10
|
+
driver: Driver<SpecType>;
|
|
11
|
+
logger?: Logger | undefined;
|
|
12
|
+
}) => Promise<NMLClient | null>) & {
|
|
13
|
+
getCachedValues(): Promise<NMLClient | null>[];
|
|
14
|
+
setCachedValue(key: any, value: Promise<NMLClient | null>): void;
|
|
15
|
+
clearCache(): void;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Logger } from '@applitools/logger';
|
|
2
|
+
import { type UFGClient, type UFGRequestsConfig } from '@applitools/ufg-client';
|
|
3
|
+
type Options = {
|
|
4
|
+
config: UFGRequestsConfig;
|
|
5
|
+
concurrency: number;
|
|
6
|
+
client?: UFGClient;
|
|
7
|
+
logger: Logger;
|
|
8
|
+
};
|
|
9
|
+
export declare function makeGetUFGClient({ config, concurrency, client, logger: defaultLogger }: Options): (({ logger }?: {
|
|
10
|
+
logger?: Logger | undefined;
|
|
11
|
+
}) => Promise<UFGClient>) & {
|
|
12
|
+
getCachedValues(): Promise<UFGClient>[];
|
|
13
|
+
setCachedValue(key: any, value: Promise<UFGClient>): void;
|
|
14
|
+
clearCache(): void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
package/types/ufg/open-eyes.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import type { DriverTarget, Eyes, OpenSettings } from './types';
|
|
2
2
|
import type { Core as BaseCore, Eyes as BaseEyes } from '@applitools/core-base';
|
|
3
3
|
import { type Logger } from '@applitools/logger';
|
|
4
|
-
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
5
4
|
import { type UFGClient } from '@applitools/ufg-client';
|
|
5
|
+
import { type NMLClient } from '@applitools/nml-client';
|
|
6
|
+
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
6
7
|
type Options<TSpec extends SpecType> = {
|
|
7
8
|
core: BaseCore;
|
|
8
|
-
|
|
9
|
+
clients?: {
|
|
10
|
+
ufg?: UFGClient;
|
|
11
|
+
nml?: NMLClient;
|
|
12
|
+
};
|
|
9
13
|
spec?: SpecDriver<TSpec>;
|
|
10
14
|
logger: Logger;
|
|
11
15
|
};
|
|
12
|
-
export declare function makeOpenEyes<TSpec extends SpecType>({ core,
|
|
16
|
+
export declare function makeOpenEyes<TSpec extends SpecType>({ core, clients, spec, logger: defaultLogger }: Options<TSpec>): ({ target, settings, eyes, logger, }: {
|
|
13
17
|
target?: DriverTarget<TSpec> | undefined;
|
|
14
18
|
settings: OpenSettings;
|
|
15
19
|
eyes?: BaseEyes<import("@applitools/core-base").ImageTarget>[] | undefined;
|
package/types/ufg/types.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { MaybeArray } from '@applitools/utils';
|
|
2
2
|
import type * as BaseCore from '@applitools/core-base/types';
|
|
3
3
|
import type * as AutomationCore from '../automation/types';
|
|
4
|
-
import { type SpecType } from '@applitools/driver';
|
|
4
|
+
import { type SpecType, type Driver } from '@applitools/driver';
|
|
5
5
|
import { type Logger } from '@applitools/logger';
|
|
6
6
|
import { type Proxy } from '@applitools/req';
|
|
7
|
-
import { type Renderer, type DomSnapshot, type AndroidSnapshot, type IOSSnapshot } from '@applitools/ufg-client';
|
|
7
|
+
import { type UFGClient, type Renderer, type DomSnapshot, type AndroidSnapshot, type IOSSnapshot } from '@applitools/ufg-client';
|
|
8
|
+
import { type NMLClient } from '@applitools/nml-client';
|
|
8
9
|
export * from '../automation/types';
|
|
9
10
|
export type SnapshotTarget = MaybeArray<DomSnapshot> | MaybeArray<AndroidSnapshot> | MaybeArray<IOSSnapshot>;
|
|
10
11
|
export type Target<TSpec extends SpecType> = SnapshotTarget | AutomationCore.Target<TSpec>;
|
|
@@ -19,6 +20,13 @@ export interface Core<TSpec extends SpecType, TTarget = AutomationCore.Target<TS
|
|
|
19
20
|
}
|
|
20
21
|
export interface Eyes<TSpec extends SpecType, TTarget = Target<TSpec>> extends AutomationCore.Eyes<TSpec, TTarget> {
|
|
21
22
|
readonly type: 'ufg';
|
|
23
|
+
getUFGClient(options?: {
|
|
24
|
+
logger?: Logger;
|
|
25
|
+
}): Promise<UFGClient>;
|
|
26
|
+
getNMLClient(options: {
|
|
27
|
+
driver: Driver<TSpec>;
|
|
28
|
+
logger?: Logger;
|
|
29
|
+
}): Promise<NMLClient | null>;
|
|
22
30
|
getBaseEyes(options?: {
|
|
23
31
|
settings?: {
|
|
24
32
|
type: 'web' | 'native';
|
|
@@ -1,37 +0,0 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.takeSnapshots = void 0;
|
|
18
|
-
const take_dom_snapshots_1 = require("./take-dom-snapshots");
|
|
19
|
-
const take_vhses_1 = require("./take-vhses");
|
|
20
|
-
const nml_client_1 = require("@applitools/nml-client");
|
|
21
|
-
__exportStar(require("./take-dom-snapshots"), exports);
|
|
22
|
-
__exportStar(require("./take-vhses"), exports);
|
|
23
|
-
async function takeSnapshots({ driver, settings, hooks, provides, logger, }) {
|
|
24
|
-
if (driver.isWeb) {
|
|
25
|
-
return (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, settings, hooks, provides, logger });
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
const brokerUrl = await driver.extractBrokerUrl();
|
|
29
|
-
if (brokerUrl) {
|
|
30
|
-
return (await (0, nml_client_1.takeSnapshots)({ url: brokerUrl, settings, logger }));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
return (0, take_vhses_1.takeVHSes)({ driver, settings, hooks, logger });
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.takeSnapshots = takeSnapshots;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Size } from '@applitools/utils';
|
|
2
|
-
import { type Logger } from '@applitools/logger';
|
|
3
|
-
import { type SpecType, type Driver } from '@applitools/driver';
|
|
4
|
-
import { type DomSnapshot, type AndroidSnapshot, type IOSSnapshot, type ChromeEmulationDevice, type IOSDevice, type ScreenOrientation } from '@applitools/ufg-client';
|
|
5
|
-
import { type DomSnapshotsSettings } from './take-dom-snapshots';
|
|
6
|
-
import { type VHSesSettings } from './take-vhses';
|
|
7
|
-
export * from './take-dom-snapshots';
|
|
8
|
-
export * from './take-vhses';
|
|
9
|
-
export declare function takeSnapshots<TSpec extends SpecType>({ driver, settings, hooks, provides, logger, }: {
|
|
10
|
-
driver: Driver<TSpec>;
|
|
11
|
-
settings: DomSnapshotsSettings & VHSesSettings;
|
|
12
|
-
hooks: {
|
|
13
|
-
beforeSnapshots?(): void | Promise<void>;
|
|
14
|
-
beforeEachSnapshot?(): void | Promise<void>;
|
|
15
|
-
};
|
|
16
|
-
provides: {
|
|
17
|
-
getChromeEmulationDevices(): Promise<Record<ChromeEmulationDevice, Record<ScreenOrientation, Size>>>;
|
|
18
|
-
getIOSDevices(): Promise<Record<IOSDevice, Record<ScreenOrientation, Size>>>;
|
|
19
|
-
};
|
|
20
|
-
logger: Logger;
|
|
21
|
-
}): Promise<DomSnapshot[] | AndroidSnapshot[] | IOSSnapshot[]>;
|