@applitools/core 3.6.2 → 3.6.4
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 +151 -0
- package/dist/check-and-close.js +4 -3
- package/dist/check.js +4 -2
- package/dist/classic/check-and-close.js +6 -5
- package/dist/classic/check.js +3 -3
- package/dist/close-batch.js +3 -3
- package/dist/core.js +3 -1
- package/dist/delete-test.js +3 -3
- package/dist/extract-text.js +3 -3
- package/dist/get-account-info.js +37 -0
- package/dist/get-manager-results.js +4 -4
- package/dist/locate-text.js +3 -3
- package/dist/locate.js +3 -3
- package/dist/open-eyes.js +17 -17
- package/dist/troubleshoot/ufg.js +1 -1
- package/dist/ufg/check-and-close.js +35 -27
- package/dist/ufg/check.js +37 -33
- package/dist/ufg/get-base-eyes.js +10 -10
- package/dist/ufg/get-ufg-client.js +9 -3
- package/dist/ufg/open-eyes.js +5 -19
- package/package.json +20 -20
- package/types/automation/types.d.ts +1 -1
- package/types/check-and-close.d.ts +2 -2
- package/types/classic/check-and-close.d.ts +2 -2
- package/types/classic/types.d.ts +1 -1
- package/types/get-account-info.d.ts +11 -0
- package/types/get-typed-eyes.d.ts +2 -2
- package/types/types.d.ts +1 -1
- package/types/ufg/check-and-close.d.ts +11 -5
- package/types/ufg/check.d.ts +7 -1
- package/types/ufg/get-ufg-client.d.ts +4 -4
- package/types/ufg/types.d.ts +6 -12
|
@@ -36,8 +36,8 @@ const uniquify_renderers_1 = require("./utils/uniquify-renderers");
|
|
|
36
36
|
const abort_error_1 = require("../errors/abort-error");
|
|
37
37
|
const utils = __importStar(require("@applitools/utils"));
|
|
38
38
|
const chalk_1 = __importDefault(require("chalk"));
|
|
39
|
-
function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger: mainLogger, }) {
|
|
40
|
-
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, }) {
|
|
39
|
+
function makeCheckAndClose({ eyes, storage, target: defaultTarget, spec, signal, logger: mainLogger, }) {
|
|
40
|
+
return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
41
41
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
42
42
|
logger = logger.extend(mainLogger);
|
|
43
43
|
logger.log('Command "checkAndClose" is called with settings', settings);
|
|
@@ -50,8 +50,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
50
50
|
});
|
|
51
51
|
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
|
|
52
52
|
const ufgClient = await eyes.core.getUFGClient({
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
settings: {
|
|
54
|
+
...eyes.test.ufgServer,
|
|
55
|
+
eyesServerUrl: eyes.test.eyesServer.eyesServerUrl,
|
|
56
|
+
apiKey: eyes.test.eyesServer.apiKey,
|
|
57
|
+
},
|
|
55
58
|
logger,
|
|
56
59
|
});
|
|
57
60
|
let snapshots;
|
|
@@ -61,7 +64,9 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
61
64
|
let regionToTarget;
|
|
62
65
|
let scrollRootSelector;
|
|
63
66
|
let selectorsToCalculate;
|
|
64
|
-
const driver = spec && (0, driver_1.isDriver)(target, spec)
|
|
67
|
+
const driver = spec && (0, driver_1.isDriver)(target, spec)
|
|
68
|
+
? await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger })
|
|
69
|
+
: null;
|
|
65
70
|
if (driver) {
|
|
66
71
|
const environment = await driver.getEnvironment();
|
|
67
72
|
if (uniqueRenderers.length === 0) {
|
|
@@ -108,7 +113,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
108
113
|
const currentContext = driver.currentContext;
|
|
109
114
|
const snapshotOptions = {
|
|
110
115
|
settings: {
|
|
111
|
-
...eyes.test.
|
|
116
|
+
...eyes.test.eyesServer,
|
|
112
117
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
113
118
|
disableBrowserFetching: settings.disableBrowserFetching,
|
|
114
119
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
@@ -135,7 +140,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
135
140
|
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
|
|
136
141
|
}
|
|
137
142
|
else {
|
|
138
|
-
const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.
|
|
143
|
+
const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.eyesServer, driver, logger });
|
|
139
144
|
snapshots = (await nmlClient.takeSnapshots({ ...snapshotOptions, logger }));
|
|
140
145
|
}
|
|
141
146
|
await currentContext.focus();
|
|
@@ -164,31 +169,30 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
164
169
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
165
170
|
}
|
|
166
171
|
const { cookies, ...snapshot } = snapshots[index];
|
|
167
|
-
|
|
172
|
+
if (utils.types.has(renderer, 'iosDeviceInfo') || utils.types.has(renderer, 'androidDeviceInfo')) {
|
|
173
|
+
renderer.type = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
|
|
174
|
+
}
|
|
168
175
|
const renderTargetPromise = ufgClient.createRenderTarget({
|
|
169
176
|
snapshot,
|
|
170
177
|
settings: {
|
|
171
178
|
renderer,
|
|
172
179
|
referer: snapshotUrl,
|
|
173
180
|
cookies,
|
|
174
|
-
proxy: eyes.test.
|
|
181
|
+
proxy: eyes.test.eyesServer.proxy,
|
|
175
182
|
autProxy: settings.autProxy,
|
|
176
183
|
userAgent,
|
|
177
184
|
},
|
|
178
185
|
logger: rendererLogger,
|
|
179
186
|
});
|
|
180
|
-
const [baseEyes] = await eyes.getBaseEyes({
|
|
181
|
-
settings: { renderer, type: snapshotType, properties },
|
|
182
|
-
logger,
|
|
183
|
-
});
|
|
187
|
+
const [baseEyes] = await eyes.getBaseEyes({ settings: { renderer, properties }, logger });
|
|
184
188
|
try {
|
|
185
189
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
186
190
|
rendererLogger.warn('Command "check" was aborted before rendering');
|
|
187
191
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
188
192
|
}
|
|
189
193
|
else if (!baseEyes.running) {
|
|
190
|
-
rendererLogger.warn(`
|
|
191
|
-
throw new abort_error_1.AbortError(`
|
|
194
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
195
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
192
196
|
}
|
|
193
197
|
const renderTarget = await renderTargetPromise;
|
|
194
198
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
@@ -196,8 +200,8 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
196
200
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
197
201
|
}
|
|
198
202
|
else if (!baseEyes.running) {
|
|
199
|
-
rendererLogger.warn(`
|
|
200
|
-
throw new abort_error_1.AbortError(`
|
|
203
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
204
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
201
205
|
}
|
|
202
206
|
const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
|
|
203
207
|
target: renderTarget,
|
|
@@ -206,11 +210,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
206
210
|
region: regionToTarget,
|
|
207
211
|
scrollRootElement: scrollRootSelector,
|
|
208
212
|
selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
|
|
209
|
-
includeFullPageSize:
|
|
210
|
-
type: snapshotType,
|
|
213
|
+
includeFullPageSize: !!settings.pageId,
|
|
211
214
|
renderer,
|
|
212
|
-
|
|
213
|
-
|
|
215
|
+
renderEnvironmentId: baseEyes.test.renderEnvironmentId,
|
|
216
|
+
uploadUrl: baseEyes.test.uploadUrl,
|
|
217
|
+
stitchingServiceUrl: baseEyes.test.stitchingServiceUrl,
|
|
214
218
|
},
|
|
215
219
|
signal,
|
|
216
220
|
logger: rendererLogger,
|
|
@@ -230,18 +234,18 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
230
234
|
throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
|
|
231
235
|
}
|
|
232
236
|
else if (!baseEyes.running) {
|
|
233
|
-
rendererLogger.warn(`
|
|
234
|
-
throw new abort_error_1.AbortError(`
|
|
237
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
238
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
235
239
|
}
|
|
236
|
-
|
|
240
|
+
await baseEyes.checkAndClose({
|
|
237
241
|
target: { ...baseTarget, isTransformed: true },
|
|
238
242
|
settings: baseSettings,
|
|
239
243
|
logger: rendererLogger,
|
|
240
244
|
});
|
|
241
|
-
return {
|
|
245
|
+
return { eyes: baseEyes, renderer };
|
|
242
246
|
}
|
|
243
247
|
catch (error) {
|
|
244
|
-
rendererLogger.error(`
|
|
248
|
+
rendererLogger.error(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" failed due to an error`, error);
|
|
245
249
|
await baseEyes.abort({ logger: rendererLogger });
|
|
246
250
|
error.info = { eyes: baseEyes };
|
|
247
251
|
throw error;
|
|
@@ -253,7 +257,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
|
|
|
253
257
|
throw error;
|
|
254
258
|
}
|
|
255
259
|
});
|
|
256
|
-
|
|
260
|
+
uniqueRenderers.forEach((renderer, index) => {
|
|
261
|
+
var _a;
|
|
262
|
+
const key = JSON.stringify(renderer);
|
|
263
|
+
storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), promises[index]]);
|
|
264
|
+
});
|
|
257
265
|
};
|
|
258
266
|
}
|
|
259
267
|
exports.makeCheckAndClose = makeCheckAndClose;
|
package/dist/ufg/check.js
CHANGED
|
@@ -36,8 +36,8 @@ const uniquify_renderers_1 = require("./utils/uniquify-renderers");
|
|
|
36
36
|
const abort_error_1 = require("../errors/abort-error");
|
|
37
37
|
const utils = __importStar(require("@applitools/utils"));
|
|
38
38
|
const chalk_1 = __importDefault(require("chalk"));
|
|
39
|
-
function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogger, }) {
|
|
40
|
-
return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, }) {
|
|
39
|
+
function makeCheck({ eyes, storage, target: defaultTarget, spec, signal, logger: mainLogger, }) {
|
|
40
|
+
return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
|
|
41
41
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
42
42
|
logger = logger.extend(mainLogger);
|
|
43
43
|
logger.log('Command "check" is called with settings', settings);
|
|
@@ -50,8 +50,11 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
50
50
|
});
|
|
51
51
|
const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
|
|
52
52
|
const ufgClient = await eyes.core.getUFGClient({
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
settings: {
|
|
54
|
+
...eyes.test.ufgServer,
|
|
55
|
+
eyesServerUrl: eyes.test.eyesServer.eyesServerUrl,
|
|
56
|
+
apiKey: eyes.test.eyesServer.apiKey,
|
|
57
|
+
},
|
|
55
58
|
logger,
|
|
56
59
|
});
|
|
57
60
|
let snapshots;
|
|
@@ -61,7 +64,9 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
61
64
|
let regionToTarget;
|
|
62
65
|
let scrollRootSelector;
|
|
63
66
|
let selectorsToCalculate;
|
|
64
|
-
const driver = spec && (0, driver_1.isDriver)(target, spec)
|
|
67
|
+
const driver = spec && (0, driver_1.isDriver)(target, spec)
|
|
68
|
+
? await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger })
|
|
69
|
+
: null;
|
|
65
70
|
if (driver) {
|
|
66
71
|
const environment = await driver.getEnvironment();
|
|
67
72
|
await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
|
|
@@ -109,7 +114,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
109
114
|
const currentContext = driver.currentContext;
|
|
110
115
|
const snapshotOptions = {
|
|
111
116
|
settings: {
|
|
112
|
-
...eyes.test.
|
|
117
|
+
...eyes.test.eyesServer,
|
|
113
118
|
waitBeforeCapture: settings.waitBeforeCapture,
|
|
114
119
|
disableBrowserFetching: settings.disableBrowserFetching,
|
|
115
120
|
layoutBreakpoints: settings.layoutBreakpoints,
|
|
@@ -136,7 +141,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
136
141
|
snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
|
|
137
142
|
}
|
|
138
143
|
else {
|
|
139
|
-
const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.
|
|
144
|
+
const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.eyesServer, driver, logger });
|
|
140
145
|
snapshots = (await nmlClient.takeSnapshots({ ...snapshotOptions, logger }));
|
|
141
146
|
}
|
|
142
147
|
await currentContext.focus();
|
|
@@ -165,31 +170,30 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
165
170
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
166
171
|
}
|
|
167
172
|
const { cookies, ...snapshot } = snapshots[index];
|
|
168
|
-
|
|
173
|
+
if (utils.types.has(renderer, 'iosDeviceInfo') || utils.types.has(renderer, 'androidDeviceInfo')) {
|
|
174
|
+
renderer.type = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
|
|
175
|
+
}
|
|
169
176
|
const renderTargetPromise = ufgClient.createRenderTarget({
|
|
170
177
|
snapshot,
|
|
171
178
|
settings: {
|
|
172
179
|
renderer,
|
|
173
180
|
referer: snapshotUrl,
|
|
174
181
|
cookies,
|
|
175
|
-
proxy: eyes.test.
|
|
182
|
+
proxy: eyes.test.eyesServer.proxy,
|
|
176
183
|
autProxy: settings.autProxy,
|
|
177
184
|
userAgent,
|
|
178
185
|
},
|
|
179
186
|
logger: rendererLogger,
|
|
180
187
|
});
|
|
181
|
-
const [baseEyes] = await eyes.getBaseEyes({
|
|
182
|
-
settings: { renderer, type: snapshotType, properties },
|
|
183
|
-
logger: rendererLogger,
|
|
184
|
-
});
|
|
188
|
+
const [baseEyes] = await eyes.getBaseEyes({ settings: { renderer, properties }, logger: rendererLogger });
|
|
185
189
|
try {
|
|
186
190
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
187
191
|
rendererLogger.warn('Command "check" was aborted before rendering');
|
|
188
192
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
189
193
|
}
|
|
190
194
|
else if (!baseEyes.running) {
|
|
191
|
-
rendererLogger.warn(`
|
|
192
|
-
throw new abort_error_1.AbortError(`
|
|
195
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
196
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
193
197
|
}
|
|
194
198
|
const renderTarget = await renderTargetPromise;
|
|
195
199
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
@@ -197,8 +201,8 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
197
201
|
throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
|
|
198
202
|
}
|
|
199
203
|
else if (!baseEyes.running) {
|
|
200
|
-
rendererLogger.warn(`
|
|
201
|
-
throw new abort_error_1.AbortError(`
|
|
204
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
205
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
202
206
|
}
|
|
203
207
|
const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
|
|
204
208
|
target: renderTarget,
|
|
@@ -208,10 +212,10 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
208
212
|
scrollRootElement: scrollRootSelector,
|
|
209
213
|
selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
|
|
210
214
|
includeFullPageSize: Boolean(settings.pageId),
|
|
211
|
-
type: snapshotType,
|
|
212
215
|
renderer,
|
|
213
|
-
|
|
214
|
-
|
|
216
|
+
renderEnvironmentId: baseEyes.test.renderEnvironmentId,
|
|
217
|
+
uploadUrl: baseEyes.test.uploadUrl,
|
|
218
|
+
stitchingServiceUrl: baseEyes.test.stitchingServiceUrl,
|
|
215
219
|
},
|
|
216
220
|
signal,
|
|
217
221
|
logger: rendererLogger,
|
|
@@ -231,22 +235,22 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
231
235
|
throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
|
|
232
236
|
}
|
|
233
237
|
else if (!baseEyes.running) {
|
|
234
|
-
rendererLogger.warn(`
|
|
235
|
-
throw new abort_error_1.AbortError(`
|
|
238
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
239
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
236
240
|
}
|
|
237
|
-
|
|
241
|
+
await baseEyes.check({
|
|
238
242
|
target: { ...baseTarget, isTransformed: true },
|
|
239
243
|
settings: baseSettings,
|
|
240
244
|
logger: rendererLogger,
|
|
241
245
|
});
|
|
242
246
|
if (!baseEyes.running) {
|
|
243
|
-
rendererLogger.warn(`
|
|
244
|
-
throw new abort_error_1.AbortError(`
|
|
247
|
+
rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
248
|
+
throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
|
|
245
249
|
}
|
|
246
|
-
return {
|
|
250
|
+
return { eyes: baseEyes, renderer };
|
|
247
251
|
}
|
|
248
252
|
catch (error) {
|
|
249
|
-
rendererLogger.error(`
|
|
253
|
+
rendererLogger.error(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" failed due to an error`, error);
|
|
250
254
|
if (baseEyes.running && !(signal === null || signal === void 0 ? void 0 : signal.aborted))
|
|
251
255
|
await baseEyes.abort({ logger: rendererLogger });
|
|
252
256
|
error.info = { eyes: baseEyes };
|
|
@@ -259,12 +263,12 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
|
|
|
259
263
|
throw error;
|
|
260
264
|
}
|
|
261
265
|
});
|
|
262
|
-
return uniqueRenderers.map((renderer, index) =>
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
})
|
|
266
|
+
return uniqueRenderers.map((renderer, index) => {
|
|
267
|
+
var _a;
|
|
268
|
+
const key = JSON.stringify(renderer);
|
|
269
|
+
storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), promises[index]]);
|
|
270
|
+
return { asExpected: true, userTestId: eyes.test.userTestId, renderer };
|
|
271
|
+
});
|
|
268
272
|
};
|
|
269
273
|
}
|
|
270
274
|
exports.makeCheck = makeCheck;
|
|
@@ -26,28 +26,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.makeGetBaseEyes = void 0;
|
|
27
27
|
const utils = __importStar(require("@applitools/utils"));
|
|
28
28
|
function makeGetBaseEyes({ settings: defaultSettings, eyes, base, logger: mainLogger, }) {
|
|
29
|
-
const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, ([options]) => options === null || options === void 0 ? void 0 : options.settings);
|
|
29
|
+
const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, ([options]) => { var _a; return (_a = options === null || options === void 0 ? void 0 : options.settings) === null || _a === void 0 ? void 0 : _a.renderer; });
|
|
30
30
|
if (base) {
|
|
31
|
-
base.forEach(baseEyes => getBaseEyesWithCache.setCachedValue(baseEyes.test.
|
|
31
|
+
base.forEach(baseEyes => getBaseEyesWithCache.setCachedValue(baseEyes.test.renderer, Promise.resolve([baseEyes])));
|
|
32
32
|
}
|
|
33
33
|
return getBaseEyesWithCache;
|
|
34
34
|
async function getBaseEyes({ settings, logger = mainLogger, } = {}) {
|
|
35
|
-
var _a, _b;
|
|
36
35
|
logger = logger.extend(mainLogger);
|
|
37
36
|
logger.log(`Command "getBaseEyes" is called with settings`, settings);
|
|
38
37
|
if (!settings)
|
|
39
38
|
throw new Error('');
|
|
40
39
|
const ufgClient = await eyes.core.getUFGClient({
|
|
41
|
-
|
|
40
|
+
settings: {
|
|
41
|
+
...eyes.test.ufgServer,
|
|
42
|
+
eyesServerUrl: eyes.test.eyesServer.eyesServerUrl,
|
|
43
|
+
apiKey: eyes.test.eyesServer.apiKey,
|
|
44
|
+
},
|
|
42
45
|
logger,
|
|
43
46
|
});
|
|
44
|
-
const environment = await ufgClient.
|
|
45
|
-
|
|
46
|
-
if (defaultSettings.properties || settings.properties) {
|
|
47
|
-
properties = ((_a = defaultSettings.properties) !== null && _a !== void 0 ? _a : []).concat((_b = settings.properties) !== null && _b !== void 0 ? _b : []);
|
|
48
|
-
}
|
|
47
|
+
const environment = await ufgClient.getRenderEnvironment({ settings, logger });
|
|
48
|
+
environment.properties = settings.properties;
|
|
49
49
|
const baseEyes = await eyes.core.base.openEyes({
|
|
50
|
-
settings: { ...defaultSettings, environment: { ...defaultSettings.environment, ...environment }
|
|
50
|
+
settings: { ...defaultSettings, environment: { ...defaultSettings.environment, ...environment } },
|
|
51
51
|
logger,
|
|
52
52
|
});
|
|
53
53
|
return [baseEyes];
|
|
@@ -29,13 +29,19 @@ const utils = __importStar(require("@applitools/utils"));
|
|
|
29
29
|
function makeGetUFGClient({ client, fetchConcurrency, logger: mainLogger }) {
|
|
30
30
|
// we are caching by the server config, therefor if the user creates another Runner / manager with the same server config but different
|
|
31
31
|
// fetchConcurrency, it will not take any affect.
|
|
32
|
-
const getUFGClientWithCache = utils.general.cachify(getUFGClient, ([options]) => client ? 'default' : [{ ...options.
|
|
32
|
+
const getUFGClientWithCache = utils.general.cachify(getUFGClient, ([options]) => client ? 'default' : [{ ...options.settings, fetchConcurrency: undefined }]);
|
|
33
33
|
if (client)
|
|
34
34
|
getUFGClientWithCache.setCachedValue('default', Promise.resolve(client));
|
|
35
35
|
return getUFGClientWithCache;
|
|
36
|
-
async function getUFGClient({
|
|
36
|
+
async function getUFGClient({ settings, logger = mainLogger }) {
|
|
37
37
|
logger = logger.extend(mainLogger);
|
|
38
|
-
|
|
38
|
+
const tunnelIds = utils.general.getEnvValue('FETCH_RESOURCE_FROM_TUNNEL', 'boolean')
|
|
39
|
+
? utils.general.getEnvValue('TUNNEL_IDS')
|
|
40
|
+
: undefined;
|
|
41
|
+
return (0, ufg_client_1.makeUFGClient)({
|
|
42
|
+
settings: { ...settings, fetchConcurrency, tunnelIds },
|
|
43
|
+
logger,
|
|
44
|
+
});
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
47
|
exports.makeGetUFGClient = makeGetUFGClient;
|
package/dist/ufg/open-eyes.js
CHANGED
|
@@ -64,8 +64,10 @@ function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
|
64
64
|
userTestId: settings.userTestId,
|
|
65
65
|
batchId: (_a = settings.batch) === null || _a === void 0 ? void 0 : _a.id,
|
|
66
66
|
keepBatchOpen: settings.keepBatchOpen,
|
|
67
|
-
|
|
67
|
+
eyesServer: account.eyesServer,
|
|
68
68
|
ufgServer: account.ufgServer,
|
|
69
|
+
uploadUrl: account.uploadUrl,
|
|
70
|
+
stitchingServiceUrl: account.stitchingServiceUrl,
|
|
69
71
|
account,
|
|
70
72
|
},
|
|
71
73
|
get running() {
|
|
@@ -73,24 +75,8 @@ function makeOpenEyes({ core, spec, logger: mainLogger }) {
|
|
|
73
75
|
},
|
|
74
76
|
getBaseEyes: (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, base, logger }),
|
|
75
77
|
// check with indexing and storage
|
|
76
|
-
check:
|
|
77
|
-
|
|
78
|
-
results.forEach(result => {
|
|
79
|
-
var _a;
|
|
80
|
-
const key = JSON.stringify(result.renderer);
|
|
81
|
-
storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), result.promise]);
|
|
82
|
-
});
|
|
83
|
-
return results;
|
|
84
|
-
}),
|
|
85
|
-
checkAndClose: utils.general.wrap((0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, signal: controller.signal, logger }), async (checkAndClose, options = {}) => {
|
|
86
|
-
const results = await checkAndClose(options);
|
|
87
|
-
results.forEach(result => {
|
|
88
|
-
var _a;
|
|
89
|
-
const key = JSON.stringify(result.renderer);
|
|
90
|
-
storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), { eyes: result.eyes, renderer: result.renderer }]);
|
|
91
|
-
});
|
|
92
|
-
return results;
|
|
93
|
-
}),
|
|
78
|
+
check: (0, check_1.makeCheck)({ eyes, storage, target: driver, spec, signal: controller.signal, logger }),
|
|
79
|
+
checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, storage, target: driver, spec, signal: controller.signal, logger }),
|
|
94
80
|
close: utils.general.wrap((0, close_1.makeClose)({ storage, target: driver, logger }), async (close, options) => {
|
|
95
81
|
if (!running)
|
|
96
82
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.4",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -68,42 +68,42 @@
|
|
|
68
68
|
]
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@applitools/core-base": "1.4.
|
|
71
|
+
"@applitools/core-base": "1.4.3",
|
|
72
72
|
"@applitools/dom-capture": "11.2.2",
|
|
73
73
|
"@applitools/dom-snapshot": "4.7.9",
|
|
74
|
-
"@applitools/driver": "1.13.
|
|
75
|
-
"@applitools/ec-client": "1.7.
|
|
76
|
-
"@applitools/logger": "2.0.
|
|
77
|
-
"@applitools/nml-client": "1.5.
|
|
78
|
-
"@applitools/req": "1.5.
|
|
79
|
-
"@applitools/screenshoter": "3.8.
|
|
74
|
+
"@applitools/driver": "1.13.3",
|
|
75
|
+
"@applitools/ec-client": "1.7.3",
|
|
76
|
+
"@applitools/logger": "2.0.7",
|
|
77
|
+
"@applitools/nml-client": "1.5.5",
|
|
78
|
+
"@applitools/req": "1.5.2",
|
|
79
|
+
"@applitools/screenshoter": "3.8.6",
|
|
80
80
|
"@applitools/snippets": "2.4.21",
|
|
81
|
-
"@applitools/socket": "1.1.
|
|
82
|
-
"@applitools/spec-driver-webdriver": "1.0.
|
|
83
|
-
"@applitools/ufg-client": "1.5.
|
|
81
|
+
"@applitools/socket": "1.1.7",
|
|
82
|
+
"@applitools/spec-driver-webdriver": "1.0.40",
|
|
83
|
+
"@applitools/ufg-client": "1.5.2",
|
|
84
84
|
"@applitools/utils": "1.5.0",
|
|
85
85
|
"@types/ws": "8.5.5",
|
|
86
86
|
"abort-controller": "3.0.0",
|
|
87
87
|
"chalk": "4.1.2",
|
|
88
88
|
"node-fetch": "2.6.7",
|
|
89
89
|
"webdriver": "7.30.0",
|
|
90
|
-
"ws": "8.
|
|
91
|
-
"yargs": "
|
|
90
|
+
"ws": "8.13.0",
|
|
91
|
+
"yargs": "17.7.2"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
|
-
"@applitools/bongo": "^5.
|
|
94
|
+
"@applitools/bongo": "^5.1.5",
|
|
95
95
|
"@applitools/sdk-coverage-tests": "^3.1.0",
|
|
96
|
-
"@applitools/spec-driver-puppeteer": "^1.1.
|
|
97
|
-
"@applitools/spec-driver-selenium": "^1.5.
|
|
98
|
-
"@applitools/spec-driver-webdriverio": "^1.5.
|
|
96
|
+
"@applitools/spec-driver-puppeteer": "^1.1.71",
|
|
97
|
+
"@applitools/spec-driver-selenium": "^1.5.54",
|
|
98
|
+
"@applitools/spec-driver-webdriverio": "^1.5.9",
|
|
99
99
|
"@applitools/test-server": "^1.2.2",
|
|
100
100
|
"@applitools/test-utils": "^1.5.17",
|
|
101
|
-
"@applitools/tunnel-client": "^1.1.
|
|
101
|
+
"@applitools/tunnel-client": "^1.1.3",
|
|
102
102
|
"@types/node": "^12.20.55",
|
|
103
103
|
"@types/selenium-webdriver": "^4.1.2",
|
|
104
104
|
"@types/yargs": "^17.0.22",
|
|
105
|
-
"chromedriver": "^114.0.
|
|
106
|
-
"nock": "^13.2
|
|
105
|
+
"chromedriver": "^114.0.3",
|
|
106
|
+
"nock": "^13.3.2",
|
|
107
107
|
"pkg": "^5.8.0",
|
|
108
108
|
"png-async": "^0.9.4",
|
|
109
109
|
"puppeteer": "^19.11.1",
|
|
@@ -58,7 +58,7 @@ export interface Eyes<TSpec extends SpecType> extends BaseCore.Eyes {
|
|
|
58
58
|
target?: Target<TSpec>;
|
|
59
59
|
settings?: CheckSettings<TSpec> & BaseCore.CloseSettings;
|
|
60
60
|
logger?: Logger;
|
|
61
|
-
}): Promise<
|
|
61
|
+
}): Promise<void>;
|
|
62
62
|
}
|
|
63
63
|
export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
|
|
64
64
|
webview?: boolean | string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings
|
|
1
|
+
import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings } from './types';
|
|
2
2
|
import { type Logger } from '@applitools/logger';
|
|
3
3
|
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
4
4
|
type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
|
|
@@ -14,5 +14,5 @@ export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType e
|
|
|
14
14
|
settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
|
|
15
15
|
config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
|
|
16
16
|
logger?: Logger | undefined;
|
|
17
|
-
}) => Promise<
|
|
17
|
+
}) => Promise<void>;
|
|
18
18
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings
|
|
1
|
+
import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings } from './types';
|
|
2
2
|
import type { CheckSettings as BaseCheckSettings } from '@applitools/core-base';
|
|
3
3
|
import { type Logger } from '@applitools/logger';
|
|
4
4
|
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
@@ -15,5 +15,5 @@ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target
|
|
|
15
15
|
retryTimeout?: number | undefined;
|
|
16
16
|
} & CloseSettings) | undefined;
|
|
17
17
|
logger?: Logger | undefined;
|
|
18
|
-
}) => Promise<
|
|
18
|
+
}) => Promise<void>;
|
|
19
19
|
export {};
|
package/types/classic/types.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface Eyes<TSpec extends SpecType> extends AutomationCore.Eyes<TSpec>
|
|
|
24
24
|
target?: AutomationCore.Target<TSpec>;
|
|
25
25
|
settings?: CheckSettings<TSpec> & AutomationCore.CloseSettings;
|
|
26
26
|
logger?: Logger;
|
|
27
|
-
}): Promise<
|
|
27
|
+
}): Promise<void>;
|
|
28
28
|
}
|
|
29
29
|
export type OpenSettings = AutomationCore.OpenSettings & {
|
|
30
30
|
keepPlatformNameAsIs?: boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Core, Account, EyesServerSettings } from './types';
|
|
2
|
+
import { type Logger } from '@applitools/logger';
|
|
3
|
+
type Options = {
|
|
4
|
+
core: Core<any>;
|
|
5
|
+
logger: Logger;
|
|
6
|
+
};
|
|
7
|
+
export declare function makeGetAccountInfo({ core, logger: mainLogger }: Options): ({ settings, logger, }: {
|
|
8
|
+
settings: EyesServerSettings;
|
|
9
|
+
logger?: Logger | undefined;
|
|
10
|
+
}) => Promise<Account>;
|
|
11
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DriverTarget, TypedCore, TypedEyes, OpenSettings } from './types';
|
|
2
2
|
import { type SpecType } from '@applitools/driver';
|
|
3
|
-
import { type
|
|
3
|
+
import { type RenderEnvironmentSettings } from '@applitools/ufg-client';
|
|
4
4
|
import { type Logger } from '@applitools/logger';
|
|
5
5
|
type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
|
|
6
6
|
type: TType;
|
|
@@ -13,7 +13,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
|
|
|
13
13
|
};
|
|
14
14
|
export declare function makeGetTypedEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, settings: defaultSettings, target, cores, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, settings, logger, }?: {
|
|
15
15
|
type?: TType | undefined;
|
|
16
|
-
settings?:
|
|
16
|
+
settings?: RenderEnvironmentSettings[] | undefined;
|
|
17
17
|
logger?: Logger | undefined;
|
|
18
18
|
}) => Promise<TypedEyes<TSpec, TType>>;
|
|
19
19
|
export {};
|
package/types/types.d.ts
CHANGED
|
@@ -80,7 +80,7 @@ export interface Eyes<TSpec extends SpecType, TDefaultType extends 'classic' | '
|
|
|
80
80
|
settings?: Partial<CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>>;
|
|
81
81
|
config?: Config<TSpec, TDefaultType> & Config<TSpec, TType>;
|
|
82
82
|
logger?: Logger;
|
|
83
|
-
}): Promise<
|
|
83
|
+
}): Promise<void>;
|
|
84
84
|
close(options?: {
|
|
85
85
|
settings?: Partial<CloseSettings<TDefaultType>>;
|
|
86
86
|
config?: Config<TSpec, TDefaultType>;
|
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
import type { Region } from '@applitools/utils';
|
|
2
|
-
import type { DriverTarget, Target, Eyes, CheckSettings,
|
|
2
|
+
import type { DriverTarget, Target, Eyes, CheckSettings, CloseSettings } from './types';
|
|
3
|
+
import type { Eyes as BaseEyes } from '@applitools/core-base';
|
|
4
|
+
import { type Renderer } from '@applitools/ufg-client';
|
|
3
5
|
import { type AbortSignal } from 'abort-controller';
|
|
4
6
|
import { type Logger } from '@applitools/logger';
|
|
5
7
|
import { type SpecType, type SpecDriver } from '@applitools/driver';
|
|
6
8
|
type Options<TSpec extends SpecType> = {
|
|
7
9
|
eyes: Eyes<TSpec>;
|
|
10
|
+
storage: Map<string, Promise<{
|
|
11
|
+
renderer: Renderer;
|
|
12
|
+
eyes: BaseEyes;
|
|
13
|
+
}>[]>;
|
|
8
14
|
target?: DriverTarget<TSpec>;
|
|
9
15
|
spec?: SpecDriver<TSpec>;
|
|
10
16
|
signal?: AbortSignal;
|
|
11
17
|
logger: Logger;
|
|
12
18
|
};
|
|
13
|
-
export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }
|
|
19
|
+
export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, storage, target: defaultTarget, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
|
|
14
20
|
target?: Target<TSpec> | undefined;
|
|
15
21
|
settings?: (import("@applitools/core-base").CheckSettings<Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
|
|
16
|
-
renderers?: (
|
|
17
|
-
properties?: import("@applitools/core-base
|
|
22
|
+
renderers?: (Renderer & {
|
|
23
|
+
properties?: import("@applitools/core-base").CustomProperty[] | undefined;
|
|
18
24
|
})[] | undefined;
|
|
19
25
|
hooks?: {
|
|
20
26
|
beforeCaptureScreenshot: string;
|
|
@@ -31,5 +37,5 @@ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target
|
|
|
31
37
|
}) | undefined;
|
|
32
38
|
} & CloseSettings) | undefined;
|
|
33
39
|
logger?: Logger | undefined;
|
|
34
|
-
}) => Promise<
|
|
40
|
+
}) => Promise<void>;
|
|
35
41
|
export {};
|