@applitools/eyes-nightwatch 1.11.2 → 1.11.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 CHANGED
@@ -11,6 +11,31 @@
11
11
 
12
12
 
13
13
 
14
+ ## 1.11.4 - 2022/9/29
15
+
16
+ ### Features
17
+ - Don't fail `eyes.open` when there is a failure to set viewport size in `UFG`.
18
+ - Support Nightwatch major version 2
19
+ - Added support for lazy loading views in android native apps
20
+ - Using `lazyLoad.waitingTime` as a delay between stitches by default
21
+ - Added `Sony Xperia 10 II` emulation device
22
+ - Added `iPhone 14` and `iPhone 14 Pro Max` ios devices
23
+ - Support Nightwatch major version 2
24
+ - Deprecated "Content" match level value in favor of "IgnoreColors"
25
+ ### Bug fixes
26
+ - Fixed incorrect calculation of the target element position.
27
+
28
+ ## 1.11.3 - 2022/7/28
29
+
30
+ ### Features
31
+ - Added new android devices
32
+ ### Bug fixes
33
+ - Fixed bug where a failure in a single UFG environment fails all other environments in the same configuration
34
+ - Fixed various issues during taking screenshots in landscape orientation on some native devices
35
+ - Avoided unexpected touch actions during `check` on Android apps
36
+ - Better support in DOM slot element
37
+ - Fixed some issues with helper library usage
38
+
14
39
  ## 1.11.2 - 2022/7/5
15
40
 
16
41
  ### Features
package/dist/api.js CHANGED
@@ -27,14 +27,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.BatchClose = exports.closeBatch = exports.Target = exports.CheckSettings = exports.Configuration = exports.Eyes = void 0;
30
- const eyes_sdk_core_1 = require("@applitools/eyes-sdk-core");
30
+ const core_1 = require("@applitools/core");
31
31
  const api = __importStar(require("@applitools/eyes-api"));
32
32
  const spec = __importStar(require("./spec-driver"));
33
- const sdk = (0, eyes_sdk_core_1.makeSDK)({
34
- name: 'eyes.nightwatch',
35
- version: require('../package.json').version,
33
+ const sdk = (0, core_1.makeCore)({
34
+ agentId: `eyes.nightwatch/${require('../package.json').version}`,
36
35
  spec,
37
- VisualGridClient: require('@applitools/visual-grid-client'),
38
36
  });
39
37
  __exportStar(require("@applitools/eyes-api"), exports);
40
38
  class Eyes extends api.Eyes {
package/dist/index.js CHANGED
@@ -15,3 +15,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./api"), exports);
18
+ if (!process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION) {
19
+ try {
20
+ const { version } = require('nightwatch/package.json');
21
+ const [major] = version.split('.', 1);
22
+ process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION = major;
23
+ }
24
+ catch {
25
+ }
26
+ }
@@ -35,10 +35,14 @@ function extractElementId(element) {
35
35
  return element[LEGACY_ELEMENT_ID];
36
36
  else if (utils.types.has(element, SHADOW_ROOT_ID))
37
37
  return element[SHADOW_ROOT_ID];
38
+ else if (utils.types.has(element, 'getId'))
39
+ return element.getId();
38
40
  }
39
41
  function call(driver, command, ...args) {
40
42
  return new Promise((resolve, reject) => {
41
43
  const promise = driver[command](...args, (result) => {
44
+ if (!result)
45
+ reject(new Error('Got empty result'));
42
46
  if (!('value' in result) && !result.error)
43
47
  resolve(result);
44
48
  else if (!result.status && !result.error)
@@ -46,8 +50,10 @@ function call(driver, command, ...args) {
46
50
  else
47
51
  reject(result.value || result.error);
48
52
  });
49
- if (promise instanceof Promise)
53
+ if ((process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION === '1' || command === 'moveTo') &&
54
+ promise instanceof Promise) {
50
55
  promise.then(resolve, reject);
56
+ }
51
57
  });
52
58
  }
53
59
  function isDriver(driver) {
@@ -174,11 +180,22 @@ async function getWindowSize(driver) {
174
180
  exports.getWindowSize = getWindowSize;
175
181
  async function setWindowSize(driver, size) {
176
182
  try {
177
- await call(driver, 'setWindowRect', size);
183
+ if (process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION === '1') {
184
+ await call(driver, 'setWindowRect', size);
185
+ }
186
+ else {
187
+ await driver.setWindowRect(size);
188
+ }
178
189
  }
179
190
  catch {
180
- await call(driver, 'setWindowPosition', 0, 0);
181
- await call(driver, 'setWindowSize', size.width, size.height);
191
+ if (process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION === '1') {
192
+ await call(driver, 'setWindowPosition', 0, 0);
193
+ await call(driver, 'setWindowSize', size.width, size.height);
194
+ }
195
+ else {
196
+ await driver.setWindowPosition(0, 0);
197
+ await driver.setWindowSize(size.width, size.height);
198
+ }
182
199
  }
183
200
  }
184
201
  exports.setWindowSize = setWindowSize;
@@ -190,7 +207,19 @@ async function getCookies(driver, context) {
190
207
  exports.getCookies = getCookies;
191
208
  async function getCapabilities(driver) {
192
209
  try {
193
- return await call(driver, 'session');
210
+ const session = await call(driver, 'session');
211
+ if (process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION === '1') {
212
+ return session;
213
+ }
214
+ else {
215
+ const capabilities = session.getCapabilities();
216
+ const mapIterator = capabilities.keys();
217
+ const caps = {};
218
+ for (const cap of mapIterator) {
219
+ caps[cap] = capabilities.get(cap);
220
+ }
221
+ return caps;
222
+ }
194
223
  }
195
224
  catch {
196
225
  return driver.options.desiredCapabilities;
@@ -287,9 +316,24 @@ async function build(env) {
287
316
  },
288
317
  },
289
318
  }, {}, 'default');
290
- const client = Nightwatch.client(settings);
291
- client.isES6AsyncTestcase = true;
292
- await client.createSession();
293
- return [client.api, () => client.session.close()];
319
+ if (process.env.APPLITOOLS_NIGHTWATCH_MAJOR_VERSION === '1') {
320
+ const client = Nightwatch.client(settings);
321
+ client.isES6AsyncTestcase = true;
322
+ await client.createSession();
323
+ return [client.api, () => client.session.close()];
324
+ }
325
+ else {
326
+ settings.desiredCapabilities.browserName =
327
+ settings.desiredCapabilities.browserName === 'Firefox'
328
+ ? settings.desiredCapabilities.browserName.toLowerCase()
329
+ : settings.desiredCapabilities.browserName;
330
+ settings.selenium = {
331
+ host: settings.webdriver.host,
332
+ port: settings.webdriver.port,
333
+ };
334
+ const client = Nightwatch.createClient(Object.assign(settings, settings.desiredCapabilities));
335
+ const driver = await client.launchBrowser();
336
+ return [driver, () => driver.end()];
337
+ }
294
338
  }
295
339
  exports.build = build;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-nightwatch",
3
- "version": "1.11.2",
3
+ "version": "1.11.4",
4
4
  "description": "Applitools Eyes SDK for Nightwatch.js",
5
5
  "keywords": [
6
6
  "eyes-nightwatch",
@@ -43,7 +43,7 @@
43
43
  "scripts": {
44
44
  "lint": "eslint '**/*.ts' '**/*.js'",
45
45
  "build": "ttsc",
46
- "generate:tests": "coverage-tests generate https://raw.githubusercontent.com/applitools/sdk.coverage.tests/universal-sdk/js/config.js --name 'eyes-nightwatch'",
46
+ "generate:tests": "coverage-tests generate ./test/coverage/config.js --name 'eyes-nightwatch'",
47
47
  "test": "yarn test:it && yarn test:e2e && yarn test:coverage",
48
48
  "test:sanity": "yarn test:it",
49
49
  "test:it": "mocha ./test/it/spec-driver.spec.js --exit --no-timeouts -r @applitools/test-utils/mocha-hooks/docker",
@@ -51,10 +51,11 @@
51
51
  "test:e2e:cucumber": "cucumber-js test/e2e/cucumber/features/*.feature --require test/e2e/cucumber/cucumber.config.js --require test/e2e/cucumber/step_definitions",
52
52
  "test:e2e:nightwatch": "nightwatch --config test/e2e/nightwatch.conf.js --eyes-config applitools.config.js test/e2e/*.spec.js",
53
53
  "test:coverage": "yarn generate:tests && APPLITOOLS_BATCH_NAME='JS Coverage Tests: eyes-nightwatch' APPLITOOLS_BATCH_ID=$(uuidgen) XUNIT_FILE=coverage-test-report.xml mocha --config .mocharc.cvg.js",
54
- "report": "coverage-tests report https://raw.githubusercontent.com/applitools/sdk.coverage.tests/master/js/config.js --name 'eyes-nightwatch'",
54
+ "report": "coverage-tests report ./test/coverage/config.js --name 'eyes-nightwatch'",
55
55
  "setup": "yarn docker:setup",
56
56
  "docker:setup": "node ../scripts/scripts/generate-docker-compose-config.js && docker-compose up -d",
57
57
  "docker:teardown": "docker-compose down",
58
+ "upgrade:framework": "if [ ! -z $APPLITOOLS_NIGHTWATCH_MAJOR_VERSION ]; then packagejson=`cat package.json`; yarn upgrade --no-lockfile nightwatch@$APPLITOOLS_NIGHTWATCH_MAJOR_VERSION; echo \"$packagejson\" > package.json; fi",
58
59
  "deps": "bongo deps",
59
60
  "gh:test": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='nightwatch' -f links='eyes-sdk-core eyes-api types test-utils utils driver snippets screenshoter sdk-shared visual-grid-client'",
60
61
  "gh:publish": "gh workflow run publish-nightwatch.yml --ref $(git rev-parse --abbrev-ref HEAD)",
@@ -68,20 +69,19 @@
68
69
  }
69
70
  },
70
71
  "dependencies": {
71
- "@applitools/eyes-api": "1.7.3",
72
- "@applitools/eyes-sdk-core": "13.8.10",
73
- "@applitools/types": "1.5.6",
74
- "@applitools/utils": "1.3.10",
75
- "@applitools/visual-grid-client": "15.13.4"
72
+ "@applitools/core": "1.1.0",
73
+ "@applitools/eyes-api": "1.8.0",
74
+ "@applitools/types": "1.5.17",
75
+ "@applitools/utils": "1.3.12"
76
76
  },
77
77
  "devDependencies": {
78
- "@applitools/api-extractor": "1.2.9",
79
- "@applitools/bongo": "^2.1.6",
78
+ "@applitools/api-extractor": "1.2.11",
79
+ "@applitools/bongo": "^2.2.0",
80
80
  "@applitools/scripts": "1.1.0",
81
- "@applitools/sdk-coverage-tests": "2.3.19",
82
- "@applitools/sdk-shared": "0.9.13",
83
- "@applitools/test-utils": "1.4.2",
84
- "@types/nightwatch": "^1.3.3",
81
+ "@applitools/sdk-coverage-tests": "2.3.20",
82
+ "@applitools/sdk-shared": "0.9.14",
83
+ "@applitools/test-utils": "1.5.1",
84
+ "@types/nightwatch": "2.3.6",
85
85
  "@types/node": "12",
86
86
  "@typescript-eslint/eslint-plugin": "^5.27.0",
87
87
  "@typescript-eslint/parser": "^5.27.0",
@@ -95,7 +95,7 @@
95
95
  "geckodriver": "^3.0.1",
96
96
  "husky": "^4.3.8",
97
97
  "mocha": "^10.0.0",
98
- "nightwatch": "1.7.13",
98
+ "nightwatch": "2.3.7",
99
99
  "nightwatch-api": "^3.0.2",
100
100
  "prettier": "^2.6.2",
101
101
  "spec-xunit-file": "0.0.1-3",
package/types/index.d.ts CHANGED
@@ -27,7 +27,7 @@ export class Eyes {
27
27
  check(checkSettings?: CheckSettingsPlain): Promise<MatchResult>;
28
28
  locate<TLocator extends string>(settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Array<RegionPlain>>>;
29
29
  extractTextRegions<TPattern extends string>(settings: OCRSettings<TPattern>): Promise<Record<TPattern, Array<TextRegion>>>;
30
- extractText(regions: Array<OCRRegion>): Promise<Array<string>>;
30
+ extractText(settings: Array<OCRRegion>): Promise<Array<string>>;
31
31
  close(throwErr?: boolean): Promise<TestResults>;
32
32
  abort(): Promise<TestResults>;
33
33
  getViewportSize(): Promise<RectangleSize>;
@@ -116,7 +116,14 @@ export type ConfigurationPlain = {
116
116
  apiKey?: string;
117
117
  serverUrl?: string;
118
118
  proxy?: ProxySettingsPlain;
119
- autProxy?: { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; };
119
+ autProxy?: {
120
+ url: string;
121
+ username?: string;
122
+ password?: string;
123
+ isHttpOnly?: boolean;
124
+ mode?: "Allow" | "Block";
125
+ domains?: Array<string>;
126
+ };
120
127
  isDisabled?: boolean;
121
128
  appName?: string;
122
129
  testName?: string;
@@ -161,7 +168,7 @@ export type ConfigurationPlain = {
161
168
  disableBrowserFetching?: boolean;
162
169
  };
163
170
  export class Configuration implements Required<ConfigurationPlain> {
164
- constructor(config?: ConfigurationPlain);
171
+ constructor(config?: ConfigurationPlain, spec?: { isElement(element: any): element is Element; isSelector(selector: any): selector is Selector; });
165
172
  get appName(): string;
166
173
  set appName(appName: string);
167
174
  getAppName(): string;
@@ -208,10 +215,38 @@ export class Configuration implements Required<ConfigurationPlain> {
208
215
  setProxy(proxy: ProxySettingsPlain): Configuration;
209
216
  setProxy(url: string, username?: string, password?: string, isHttpOnly?: boolean): Configuration;
210
217
  setProxy(isEnabled: false): Configuration;
211
- get autProxy(): { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; };
212
- set autProxy(autProxy: { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; });
213
- getAutProxy(): { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; };
214
- setAutProxy(autProxy: { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; }): Configuration;
218
+ get autProxy(): {
219
+ url: string;
220
+ username?: string;
221
+ password?: string;
222
+ isHttpOnly?: boolean;
223
+ mode?: "Allow" | "Block";
224
+ domains?: Array<string>;
225
+ };
226
+ set autProxy(autProxy: {
227
+ url: string;
228
+ username?: string;
229
+ password?: string;
230
+ isHttpOnly?: boolean;
231
+ mode?: "Allow" | "Block";
232
+ domains?: Array<string>;
233
+ });
234
+ getAutProxy(): {
235
+ url: string;
236
+ username?: string;
237
+ password?: string;
238
+ isHttpOnly?: boolean;
239
+ mode?: "Allow" | "Block";
240
+ domains?: Array<string>;
241
+ };
242
+ setAutProxy(autProxy: {
243
+ url: string;
244
+ username?: string;
245
+ password?: string;
246
+ isHttpOnly?: boolean;
247
+ mode?: "Allow" | "Block";
248
+ domains?: Array<string>;
249
+ }): Configuration;
215
250
  get batch(): BatchInfoPlain;
216
251
  set batch(batch: BatchInfoPlain);
217
252
  getBatch(): BatchInfo;
@@ -394,13 +429,24 @@ export type CheckSettingsPlain = {
394
429
  contentRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top?: number; right?: number; bottom?: number; left?: number; }; regionId?: string; }>;
395
430
  floatingRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
396
431
  region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
432
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
433
+ regionId?: string;
434
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
435
+ } | {
436
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
437
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
438
+ regionId?: string;
397
439
  maxUpOffset?: number;
398
440
  maxDownOffset?: number;
399
441
  maxLeftOffset?: number;
400
442
  maxRightOffset?: number;
443
+ }>;
444
+ accessibilityRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
445
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
446
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
401
447
  regionId?: string;
448
+ type?: AccessibilityRegionTypePlain;
402
449
  }>;
403
- accessibilityRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); type?: AccessibilityRegionTypePlain; regionId?: string; }>;
404
450
  disableBrowserFetching?: boolean;
405
451
  layoutBreakpoints?: boolean | Array<number>;
406
452
  visualGridOptions?: { [key: string]: any; };
@@ -411,9 +457,10 @@ export type CheckSettingsPlain = {
411
457
  timeout?: number;
412
458
  waitBeforeCapture?: number;
413
459
  lazyLoad?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; };
460
+ webview?: string | boolean;
414
461
  };
415
462
  export class CheckSettings {
416
- constructor(settings?: CheckSettingsPlain);
463
+ constructor(settings?: CheckSettings | CheckSettingsPlain, spec?: { isElement(value: any): value is Element; isSelector(value: any): value is Selector; });
417
464
  withName(name: string): CheckSettings;
418
465
  region(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))): CheckSettings;
419
466
  shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettings;
@@ -429,25 +476,40 @@ export class CheckSettings {
429
476
  contentRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top?: number; right?: number; bottom?: number; left?: number; }; regionId?: string; }>): CheckSettings;
430
477
  floatingRegion(region: {
431
478
  region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
479
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
480
+ regionId?: string;
481
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
482
+ }): CheckSettings;
483
+ floatingRegion(region: {
484
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
485
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
486
+ regionId?: string;
432
487
  maxUpOffset?: number;
433
488
  maxDownOffset?: number;
434
489
  maxLeftOffset?: number;
435
490
  maxRightOffset?: number;
436
- regionId?: string;
437
491
  }): CheckSettings;
438
492
  floatingRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): CheckSettings;
439
493
  floatingRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
440
494
  region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
441
- maxUpOffset?: number;
442
- maxDownOffset?: number;
443
- maxLeftOffset?: number;
444
- maxRightOffset?: number;
495
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
445
496
  regionId?: string;
497
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
446
498
  }>): CheckSettings;
447
499
  floatingRegions(maxOffset: number, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettings;
448
- accessibilityRegion(region: { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); type?: AccessibilityRegionTypePlain; regionId?: string; }): CheckSettings;
500
+ accessibilityRegion(region: {
501
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
502
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
503
+ regionId?: string;
504
+ type?: AccessibilityRegionTypePlain;
505
+ }): CheckSettings;
449
506
  accessibilityRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), type?: AccessibilityRegionTypePlain): CheckSettings;
450
- accessibilityRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); type?: AccessibilityRegionTypePlain; regionId?: string; }>): CheckSettings;
507
+ accessibilityRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
508
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
509
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
510
+ regionId?: string;
511
+ type?: AccessibilityRegionTypePlain;
512
+ }>): CheckSettings;
451
513
  accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettings;
452
514
  scrollRootElement(scrollRootElement: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettings;
453
515
  fully(fully?: boolean): CheckSettings;
@@ -465,14 +527,15 @@ export class CheckSettings {
465
527
  layoutBreakpoints(layoutBreakpoints?: boolean | Array<number>): CheckSettings;
466
528
  hook(name: string, script: string): CheckSettings;
467
529
  beforeRenderScreenshotHook(script: string): CheckSettings;
468
- visualGridOption(key: string, value: any): CheckSettings;
469
- visualGridOptions(options: { [key: string]: any; }): CheckSettings;
530
+ ufgOption(key: string, value: any): CheckSettings;
531
+ ufgOptions(options: { [key: string]: any; }): CheckSettings;
470
532
  renderId(renderId: string): CheckSettings;
471
533
  pageId(pageId: string): CheckSettings;
472
534
  variationGroupId(variationGroupId: string): CheckSettings;
473
535
  timeout(timeout: number): CheckSettings;
474
536
  waitBeforeCapture(waitBeforeCapture: number): CheckSettings;
475
- lazyLoad(options: { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
537
+ lazyLoad(options?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
538
+ webview(option?: string | boolean): CheckSettings;
476
539
  }
477
540
  export const Target: {
478
541
  window(): CheckSettings;
@@ -481,10 +544,10 @@ export const Target: {
481
544
  frame(frame: number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })), scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettings;
482
545
  shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettings;
483
546
  };
484
- export const closeBatch: (options: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; }) => Promise<void>;
547
+ export const closeBatch: (options: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; }) => Promise<void>;
485
548
  export class BatchClose {
486
- static close(settings: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; }): Promise<void>;
487
- constructor(options?: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; });
549
+ static close(settings: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; }): Promise<void>;
550
+ constructor(options?: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; });
488
551
  close(): Promise<void>;
489
552
  setBatchIds(batchIds: Array<string>): BatchClose;
490
553
  setUrl(serverUrl: string): BatchClose;
@@ -540,7 +603,7 @@ export enum CorsIframeHandle {
540
603
  KEEP = 'KEEP',
541
604
  SNAPSHOT = 'SNAPSHOT'
542
605
  }
543
- export type DeviceNamePlain = "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5";
606
+ export type DeviceNamePlain = "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Sony Xperia 10 II";
544
607
  export enum DeviceName {
545
608
  Blackberry_PlayBook = 'Blackberry PlayBook',
546
609
  BlackBerry_Z30 = 'BlackBerry Z30',
@@ -605,15 +668,18 @@ export enum DeviceName {
605
668
  Pixel_3_XL = 'Pixel 3 XL',
606
669
  Pixel_4 = 'Pixel 4',
607
670
  Pixel_4_XL = 'Pixel 4 XL',
608
- Pixel_5 = 'Pixel 5'
671
+ Pixel_5 = 'Pixel 5',
672
+ Sony_Xperia_10_II = 'Sony Xperia 10 II'
609
673
  }
610
674
  export type FailureReportPlain = "IMMEDIATE" | "ON_CLOSE";
611
675
  export enum FailureReport {
612
676
  IMMEDIATE = 'IMMEDIATE',
613
677
  ON_CLOSE = 'ON_CLOSE'
614
678
  }
615
- export type IosDeviceNamePlain = "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)";
679
+ export type IosDeviceNamePlain = "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 14 Pro Max" | "iPhone 14" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)";
616
680
  export enum IosDeviceName {
681
+ iPhone_14_Pro_Max = 'iPhone 14 Pro Max',
682
+ iPhone_14 = 'iPhone 14',
617
683
  iPhone_13_Pro_Max = 'iPhone 13 Pro Max',
618
684
  iPhone_13_Pro = 'iPhone 13 Pro',
619
685
  iPhone_13 = 'iPhone 13',
@@ -643,11 +709,13 @@ export enum IosVersion {
643
709
  ONE_VERSION_BACK = 'latest-1',
644
710
  LATEST_ONE_VERSION_BACK = 'latest-1'
645
711
  }
646
- export type AndroidDeviceNamePlain = "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra";
712
+ export type AndroidDeviceNamePlain = "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Pixel 6" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra" | "Galaxy S22 Plus" | "Galaxy Tab S8" | "Xiaomi Redmi Note 11" | "Xiaomi Redmi Note 11 Pro";
647
713
  export enum AndroidDeviceName {
648
714
  Pixel_3_XL = 'Pixel 3 XL',
649
715
  Pixel_4 = 'Pixel 4',
650
716
  Pixel_4_XL = 'Pixel 4 XL',
717
+ Pixel_5 = 'Pixel 5',
718
+ Pixel_6 = 'Pixel 6',
651
719
  Galaxy_Note_8 = 'Galaxy Note 8',
652
720
  Galaxy_Note_9 = 'Galaxy Note 9',
653
721
  Galaxy_S8 = 'Galaxy S8',
@@ -662,7 +730,13 @@ export enum AndroidDeviceName {
662
730
  Galaxy_S20_Plus = 'Galaxy S20 Plus',
663
731
  Galaxy_S21 = 'Galaxy S21',
664
732
  Galaxy_S21_Plus = 'Galaxy S21 Plus',
665
- Galaxy_S21_Ultra = 'Galaxy S21 Ultra'
733
+ Galaxy_S21_Ultra = 'Galaxy S21 Ultra',
734
+ Galaxy_S22 = 'Galaxy S22',
735
+ Galaxy_S22_Plus = 'Galaxy S22 Plus',
736
+ Galaxy_Tab_S7 = 'Galaxy Tab S7',
737
+ Galaxy_Tab_S8 = 'Galaxy Tab S8',
738
+ Xiaomi_Redmi_Note_11 = 'Xiaomi Redmi Note 11',
739
+ Xiaomi_Redmi_Note_11_Pro = 'Xiaomi Redmi Note 11 Pro'
666
740
  }
667
741
  export type AndroidVersionPlain = "latest" | "latest-1" | "latest-2";
668
742
  export enum AndroidVersion {
@@ -670,13 +744,14 @@ export enum AndroidVersion {
670
744
  ONE_VERSION_BACK = 'latest-1',
671
745
  TWO_VERSIONS_BACK = 'latest-2'
672
746
  }
673
- export type MatchLevelPlain = "None" | "Layout1" | "Layout" | "Layout2" | "Content" | "Strict" | "Exact";
747
+ export type MatchLevelPlain = "None" | "Layout1" | "Layout" | "Layout2" | "Content" | "IgnoreColor" | "Strict" | "Exact";
674
748
  export enum MatchLevel {
675
749
  None = 'None',
676
750
  LegacyLayout = 'Layout1',
677
751
  Layout = 'Layout',
678
752
  Layout2 = 'Layout2',
679
753
  Content = 'Content',
754
+ IgnoreColor = 'IgnoreColor',
680
755
  Strict = 'Strict',
681
756
  Exact = 'Exact'
682
757
  }
@@ -1254,71 +1329,17 @@ export class TestResults implements Required<TestResultsPlain> {
1254
1329
  isPassed(): boolean;
1255
1330
  delete(): Promise<void>;
1256
1331
  }
1257
- export type TestResultContainerPlain = { readonly exception?: Error; readonly testResults?: {
1258
- readonly id?: string;
1259
- readonly name?: string;
1260
- readonly secretToken?: string;
1261
- readonly status?: "Passed" | "Failed" | "Unresolved";
1262
- readonly appName?: string;
1263
- readonly batchId?: string;
1264
- readonly batchName?: string;
1265
- readonly branchName?: string;
1266
- readonly hostOS?: string;
1267
- readonly hostApp?: string;
1268
- readonly hostDisplaySize?: { width: number; height: number; };
1269
- readonly accessibilityStatus?: { readonly level: "AA" | "AAA"; readonly version: "WCAG_2_0" | "WCAG_2_1"; readonly status: "Passed" | "Failed"; };
1270
- readonly startedAt?: string | Date;
1271
- readonly duration?: number;
1272
- readonly isNew?: boolean;
1273
- readonly isDifferent?: boolean;
1274
- readonly isAborted?: boolean;
1275
- readonly appUrls?: { readonly batch?: string; readonly session?: string; };
1276
- readonly apiUrls?: { readonly batch?: string; readonly session?: string; };
1277
- readonly stepsInfo?: Array<{
1278
- readonly name?: string;
1279
- readonly isDifferent?: boolean;
1280
- readonly hasBaselineImage?: boolean;
1281
- readonly hasCurrentImage?: boolean;
1282
- readonly appUrls?: { readonly step?: string; readonly stepEditor?: string; };
1283
- readonly apiUrls?: {
1284
- readonly baselineImage?: string;
1285
- readonly currentImage?: string;
1286
- readonly checkpointImage?: string;
1287
- readonly checkpointImageThumbnail?: string;
1288
- readonly diffImage?: string;
1289
- };
1290
- readonly renderId?: Array<string>;
1291
- }>;
1292
- readonly steps?: number;
1293
- readonly matches?: number;
1294
- readonly mismatches?: number;
1295
- readonly missing?: number;
1296
- readonly exactMatches?: number;
1297
- readonly strictMatches?: number;
1298
- readonly contentMatches?: number;
1299
- readonly layoutMatches?: number;
1300
- readonly noneMatches?: number;
1301
- readonly url?: string;
1302
- }; readonly browserInfo?: { name?: "chrome" | "chrome-one-version-back" | "chrome-two-versions-back" | "firefox" | "firefox-one-version-back" | "firefox-two-versions-back" | "ie" | "ie10" | "edge" | "edgechromium" | "edgelegacy" | "edgechromium-one-version-back" | "edgechromium-two-versions-back" | "safari" | "safari-earlyaccess" | "safari-one-version-back" | "safari-two-versions-back"; width: number; height: number; } | { chromeEmulationInfo: { deviceName: "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5"; screenOrientation?: "portrait" | "landscape"; }; } | { iosDeviceInfo: { deviceName: "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)"; iosVersion?: "latest" | "latest-1"; screenOrientation?: "portrait" | "landscape"; }; } | { androidDeviceInfo: { deviceName: "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra"; version?: "latest" | "latest-1" | "latest-2"; screenOrientation?: "portrait" | "landscape"; }; }; };
1332
+ export type TestResultContainerPlain = { readonly exception: Error; readonly testResults: TestResultsPlain; readonly browserInfo: DesktopBrowserInfo | ChromeEmulationInfo | { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; } | IOSDeviceInfo | AndroidDeviceInfo; };
1303
1333
  export class TestResultContainer implements Required<TestResultContainerPlain> {
1304
1334
  get testResults(): TestResultsPlain;
1305
1335
  getTestResults(): TestResults;
1306
1336
  get exception(): Error;
1307
1337
  getException(): Error;
1308
- get browserInfo(): { name?: "chrome" | "chrome-one-version-back" | "chrome-two-versions-back" | "firefox" | "firefox-one-version-back" | "firefox-two-versions-back" | "ie" | "ie10" | "edge" | "edgechromium" | "edgelegacy" | "edgechromium-one-version-back" | "edgechromium-two-versions-back" | "safari" | "safari-earlyaccess" | "safari-one-version-back" | "safari-two-versions-back"; width: number; height: number; } | { chromeEmulationInfo: { deviceName: "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5"; screenOrientation?: "portrait" | "landscape"; }; } | { iosDeviceInfo: { deviceName: "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)"; iosVersion?: "latest" | "latest-1"; screenOrientation?: "portrait" | "landscape"; }; } | { androidDeviceInfo: { deviceName: "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra"; version?: "latest" | "latest-1" | "latest-2"; screenOrientation?: "portrait" | "landscape"; }; };
1309
- getBrowserInfo(): { name?: "chrome" | "chrome-one-version-back" | "chrome-two-versions-back" | "firefox" | "firefox-one-version-back" | "firefox-two-versions-back" | "ie" | "ie10" | "edge" | "edgechromium" | "edgelegacy" | "edgechromium-one-version-back" | "edgechromium-two-versions-back" | "safari" | "safari-earlyaccess" | "safari-one-version-back" | "safari-two-versions-back"; width: number; height: number; } | { chromeEmulationInfo: { deviceName: "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5"; screenOrientation?: "portrait" | "landscape"; }; } | { iosDeviceInfo: { deviceName: "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)"; iosVersion?: "latest" | "latest-1"; screenOrientation?: "portrait" | "landscape"; }; } | { androidDeviceInfo: { deviceName: "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra"; version?: "latest" | "latest-1" | "latest-2"; screenOrientation?: "portrait" | "landscape"; }; };
1338
+ get browserInfo(): DesktopBrowserInfo | ChromeEmulationInfo | { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; } | IOSDeviceInfo | AndroidDeviceInfo;
1339
+ getBrowserInfo(): DesktopBrowserInfo | ChromeEmulationInfo | { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; } | IOSDeviceInfo | AndroidDeviceInfo;
1310
1340
  }
1311
- export type TestResultsSummaryPlain = {
1312
- results: Array<TestResultContainerPlain>;
1313
- passed: number;
1314
- unresolved: number;
1315
- failed: number;
1316
- exceptions: number;
1317
- mismatches: number;
1318
- missing: number;
1319
- matches: number;
1320
- };
1321
- export class TestResultsSummary implements Iterable<TestResultContainerPlain> {
1341
+ export type TestResultsSummaryPlain = Iterable<TestResultContainerPlain>;
1342
+ export class TestResultsSummary implements Iterable<TestResultContainer> {
1322
1343
  getAllResults(): Array<TestResultContainer>;
1323
1344
  [Symbol.iterator](): Iterator<TestResultContainer, any, undefined>;
1324
1345
  }