@applitools/eyes-playwright 1.46.6 → 1.46.7

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
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.46.7](https://github.com/Applitools-Dev/sdk/compare/js/eyes-playwright@1.46.6...js/eyes-playwright@1.46.7) (2026-04-20)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * skip reporter download for UFG tests with no checks; fast-fail on 404 ([#3730](https://github.com/Applitools-Dev/sdk/issues/3730)) ([c1ffbfd](https://github.com/Applitools-Dev/sdk/commit/c1ffbfdeb615492abd991ebf3c75274f166d8ec7))
9
+
3
10
  ## [1.46.6](https://github.com/Applitools-Dev/sdk/compare/js/eyes-playwright@1.46.5...js/eyes-playwright@1.46.6) (2026-04-16)
4
11
 
5
12
 
@@ -34,7 +34,13 @@ async function getEyes({ testInfo, eyesConfig, eyesRunner, page, }) {
34
34
  });
35
35
  addLogHandlers(eyes, (_e = (_d = eyesConfig.logConfig) !== null && _d !== void 0 ? _d : projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.logConfig) !== null && _e !== void 0 ? _e : playwrightConfig === null || playwrightConfig === void 0 ? void 0 : playwrightConfig.logConfig, testInfo);
36
36
  eyes.open = makeStep('eyes.open', eyes.open.bind(eyes));
37
- eyes.check = makeStep('eyes.check', eyes.check.bind(eyes));
37
+ eyes.__hasChecks = false;
38
+ eyes.check = makeStep('eyes.check', eyes.check.bind(eyes), {
39
+ beforeStep: () => {
40
+ ;
41
+ eyes.__hasChecks = true;
42
+ },
43
+ });
38
44
  eyes.close = makeStep('eyes.close', eyes.close.bind(eyes));
39
45
  eyes.closeAsync = makeStep('eyes.closeAsync (without exception)', eyes.closeAsync.bind(eyes));
40
46
  // INTERNAL DEBUG CALLBACKS - Execute beforeOpen callback if provided
@@ -67,8 +73,9 @@ async function getEyes({ testInfo, eyesConfig, eyesRunner, page, }) {
67
73
  return eyes;
68
74
  }
69
75
  exports.getEyes = getEyes;
70
- function makeStep(title, f, { box } = { box: true }) {
76
+ function makeStep(title, f, { box = true, beforeStep } = {}) {
71
77
  return (async (...args) => {
78
+ beforeStep === null || beforeStep === void 0 ? void 0 : beforeStep();
72
79
  const stepTitle = typeof args[0] === 'string' ? `${title} - ${args[0]}` : title;
73
80
  return test_1.test.step(stepTitle, async () => {
74
81
  return await f(...args);
@@ -82,8 +82,11 @@ exports.test = test_1.test.extend({
82
82
  logger.log('Used reporters:', testInfo.config.reporter);
83
83
  await eyes.closeAsync();
84
84
  if (isUsingEyesReporter) {
85
- logger.log('Using Eyes reporter. Writing results..');
86
- await writeResultsWhenReady({ eyes, runner, testInfo, logger });
85
+ const isUfgWithChecks = runner instanceof index_1.VisualGridRunner && eyes.__hasChecks;
86
+ if (!(runner instanceof index_1.VisualGridRunner) || isUfgWithChecks) {
87
+ logger.log('Using Eyes reporter. Writing results..');
88
+ await writeResultsWhenReady({ eyes, runner, testInfo, logger });
89
+ }
87
90
  }
88
91
  if (eyesConfig.failTestsOnDiff === 'afterEach') {
89
92
  await eyes.getResults(true);
@@ -216,7 +216,7 @@ exports.InternalData = {
216
216
  });
217
217
  },
218
218
  async consume(uuid, eyes) {
219
- var _a, _b, _c;
219
+ var _a, _b, _c, _d;
220
220
  const logger = (((_c = (_a = eyes.getLogger) === null || _a === void 0 ? void 0 : (_b = _a.call(eyes)).getLogger) === null || _c === void 0 ? void 0 : _c.call(_b)) || (0, logger_1.makeLogger)()).extend({
221
221
  tags: [`internal-data-consume-${utils.general.shortid()}`],
222
222
  });
@@ -234,6 +234,10 @@ exports.InternalData = {
234
234
  return { key: response.key, data: response.data };
235
235
  }
236
236
  catch (error) {
237
+ if ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('404')) {
238
+ logger.warn(`Data not found for UUID ${uuid} - skipping (no data was uploaded for this test)`);
239
+ return undefined;
240
+ }
237
241
  logger.warn('Failed to consume data:', error, ". Perhaps the test doesn't include Applitools tests?");
238
242
  }
239
243
  await utils.general.sleep(1000 * (retry + 1)); // the backend might need a few seconds to process the upload
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-playwright",
3
- "version": "1.46.6",
3
+ "version": "1.46.7",
4
4
  "description": "Applitools Eyes SDK for Playwright",
5
5
  "keywords": [
6
6
  "eyes-playwright",
package/types/index.d.ts CHANGED
@@ -616,7 +616,7 @@ export type ConfigurationPlain = {
616
616
  ignoreDisplacements?: undefined | boolean;
617
617
  ignoreGitMergeBase?: undefined | boolean;
618
618
  isDisabled?: undefined | boolean;
619
- layoutBreakpoints?: undefined | boolean | Array<number> | { breakpoints: boolean | Array<number>; reload?: undefined | boolean; };
619
+ layoutBreakpoints?: undefined | boolean | Array<number> | { breakpoints: boolean | Array<number>; heightBreakpoints?: undefined | boolean; reload?: undefined | boolean; };
620
620
  matchLevel?: undefined | MatchLevelPlain;
621
621
  matchTimeout?: undefined | number;
622
622
  mobileOptions?: undefined | { keepNavigationBar?: undefined | boolean; };
@@ -805,12 +805,12 @@ export class Configuration implements Required<ConfigurationPlain> {
805
805
  set isDisabled(isDisabled: boolean);
806
806
  getIsDisabled(): boolean;
807
807
  setIsDisabled(isDisabled: boolean): Configuration;
808
- get layoutBreakpoints(): boolean | Array<number> | { breakpoints: boolean | Array<number>; reload?: undefined | boolean; };
809
- set layoutBreakpoints(layoutBreakpoints: boolean | Array<number> | { breakpoints: boolean | Array<number>; reload?: undefined | boolean; });
810
- getLayoutBreakpoints(): boolean | Array<number> | { breakpoints: boolean | Array<number>; reload?: undefined | boolean; };
808
+ get layoutBreakpoints(): boolean | Array<number> | { breakpoints: boolean | Array<number>; heightBreakpoints?: undefined | boolean; reload?: undefined | boolean; };
809
+ set layoutBreakpoints(layoutBreakpoints: boolean | Array<number> | { breakpoints: boolean | Array<number>; heightBreakpoints?: undefined | boolean; reload?: undefined | boolean; });
810
+ getLayoutBreakpoints(): boolean | Array<number> | { breakpoints: boolean | Array<number>; heightBreakpoints?: undefined | boolean; reload?: undefined | boolean; };
811
811
  setLayoutBreakpoints(layoutBreakpoints: boolean): Configuration;
812
812
  setLayoutBreakpoints(layoutBreakpoints: Array<number>): Configuration;
813
- setLayoutBreakpoints(layoutBreakpoints: { breakpoints: boolean | Array<number>; reload?: undefined | boolean; }): Configuration;
813
+ setLayoutBreakpoints(layoutBreakpoints: { breakpoints: boolean | Array<number>; heightBreakpoints?: undefined | boolean; reload?: undefined | boolean; }): Configuration;
814
814
  get matchLevel(): MatchLevelPlain;
815
815
  set matchLevel(matchLevel: MatchLevelPlain);
816
816
  getMatchLevel(): MatchLevel;