@axe-core/watcher 4.2.0-rc.2812c655 → 4.3.0-rc.2ea65931

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.
Files changed (87) hide show
  1. package/EXTENSION-LICENSES-3RD-PARTY.md +2 -2
  2. package/dist/Controller.d.ts +7 -0
  3. package/dist/Controller.js +83 -11
  4. package/dist/Controller.js.map +1 -1
  5. package/dist/cypress/cypress.d.ts +2 -1
  6. package/dist/cypress/cypress.js +74 -4
  7. package/dist/cypress/cypress.js.map +1 -1
  8. package/dist/cypressCommands.js +66 -6
  9. package/dist/cypressCommands.js.map +1 -1
  10. package/dist/playwright/playwright.d.ts +1 -0
  11. package/dist/playwright/playwright.js +4 -0
  12. package/dist/playwright/playwright.js.map +1 -1
  13. package/dist/puppeteer/puppeteer.d.ts +1 -0
  14. package/dist/puppeteer/puppeteer.js +3 -0
  15. package/dist/puppeteer/puppeteer.js.map +1 -1
  16. package/dist/sendResultsToServer.d.ts +1 -0
  17. package/dist/sendResultsToServer.js +11 -50
  18. package/dist/sendResultsToServer.js.map +1 -1
  19. package/dist/utils/constants.d.ts +1 -0
  20. package/dist/utils/constants.js +2 -1
  21. package/dist/utils/constants.js.map +1 -1
  22. package/dist/utils/saveScreenshotsLocally.d.ts +2 -0
  23. package/dist/utils/saveScreenshotsLocally.js +38 -0
  24. package/dist/utils/saveScreenshotsLocally.js.map +1 -0
  25. package/dist/utils/sync-fetch-worker.mjs +1 -1
  26. package/dist/utils/writeVariables.d.ts +4 -3
  27. package/dist/utils/writeVariables.js +7 -3
  28. package/dist/utils/writeVariables.js.map +1 -1
  29. package/dist/wdio/wdio.d.ts +1 -0
  30. package/dist/wdio/wdio.js +3 -0
  31. package/dist/wdio/wdio.js.map +1 -1
  32. package/dist/webdriver/webdriver.d.ts +1 -0
  33. package/dist/webdriver/webdriver.js +3 -0
  34. package/dist/webdriver/webdriver.js.map +1 -1
  35. package/extension/axe-versions/axe-core@4.11.3/axe.min.js +12 -0
  36. package/extension/axe-versions/axe-core@4.11.3/locales/README.md +9 -0
  37. package/extension/axe-versions/axe-core@4.11.3/locales/_template.json +1142 -0
  38. package/extension/axe-versions/axe-core@4.11.3/locales/da.json +799 -0
  39. package/extension/axe-versions/axe-core@4.11.3/locales/de.json +1127 -0
  40. package/extension/axe-versions/axe-core@4.11.3/locales/el.json +1069 -0
  41. package/extension/axe-versions/axe-core@4.11.3/locales/es.json +790 -0
  42. package/extension/axe-versions/axe-core@4.11.3/locales/eu.json +789 -0
  43. package/extension/axe-versions/axe-core@4.11.3/locales/fr.json +994 -0
  44. package/extension/axe-versions/axe-core@4.11.3/locales/he.json +1017 -0
  45. package/extension/axe-versions/axe-core@4.11.3/locales/it.json +1108 -0
  46. package/extension/axe-versions/axe-core@4.11.3/locales/ja.json +1127 -0
  47. package/extension/axe-versions/axe-core@4.11.3/locales/ko.json +1003 -0
  48. package/extension/axe-versions/axe-core@4.11.3/locales/nl.json +48 -0
  49. package/extension/axe-versions/axe-core@4.11.3/locales/no_NB.json +799 -0
  50. package/extension/axe-versions/axe-core@4.11.3/locales/pl.json +1109 -0
  51. package/extension/axe-versions/axe-core@4.11.3/locales/pt_BR.json +970 -0
  52. package/extension/axe-versions/axe-core@4.11.3/locales/pt_PT.json +1123 -0
  53. package/extension/axe-versions/axe-core@4.11.3/locales/ru.json +1127 -0
  54. package/extension/axe-versions/axe-core@4.11.3/locales/zh_CN.json +1116 -0
  55. package/extension/axe-versions/axe-core@4.11.3/locales/zh_TW.json +1108 -0
  56. package/extension/axe-versions/axe-core@4.11.4/axe.min.js +12 -0
  57. package/extension/axe-versions/axe-core@4.11.4/locales/README.md +9 -0
  58. package/extension/axe-versions/axe-core@4.11.4/locales/_template.json +1142 -0
  59. package/extension/axe-versions/axe-core@4.11.4/locales/da.json +799 -0
  60. package/extension/axe-versions/axe-core@4.11.4/locales/de.json +1127 -0
  61. package/extension/axe-versions/axe-core@4.11.4/locales/el.json +1069 -0
  62. package/extension/axe-versions/axe-core@4.11.4/locales/es.json +790 -0
  63. package/extension/axe-versions/axe-core@4.11.4/locales/eu.json +789 -0
  64. package/extension/axe-versions/axe-core@4.11.4/locales/fr.json +994 -0
  65. package/extension/axe-versions/axe-core@4.11.4/locales/he.json +1017 -0
  66. package/extension/axe-versions/axe-core@4.11.4/locales/it.json +1108 -0
  67. package/extension/axe-versions/axe-core@4.11.4/locales/ja.json +1127 -0
  68. package/extension/axe-versions/axe-core@4.11.4/locales/ko.json +1003 -0
  69. package/extension/axe-versions/axe-core@4.11.4/locales/nl.json +48 -0
  70. package/extension/axe-versions/axe-core@4.11.4/locales/no_NB.json +799 -0
  71. package/extension/axe-versions/axe-core@4.11.4/locales/pl.json +1109 -0
  72. package/extension/axe-versions/axe-core@4.11.4/locales/pt_BR.json +970 -0
  73. package/extension/axe-versions/axe-core@4.11.4/locales/pt_PT.json +1123 -0
  74. package/extension/axe-versions/axe-core@4.11.4/locales/ru.json +1127 -0
  75. package/extension/axe-versions/axe-core@4.11.4/locales/zh_CN.json +1116 -0
  76. package/extension/axe-versions/axe-core@4.11.4/locales/zh_TW.json +1108 -0
  77. package/extension/axe-versions-mapper.js +3 -1
  78. package/extension/axe.js +1 -1
  79. package/extension/axe.js.LICENSE.txt +1 -1
  80. package/extension/content.js +1 -1
  81. package/extension/manifest.json +1 -4
  82. package/package.json +4 -5
  83. package/dist/utils/createAbortController.d.ts +0 -11
  84. package/dist/utils/createAbortController.js +0 -14
  85. package/dist/utils/createAbortController.js.map +0 -1
  86. package/extension/background.js +0 -1
  87. package/extension/background.js.LICENSE.txt +0 -1
@@ -457,7 +457,7 @@ SOFTWARE.
457
457
 
458
458
  ## brace-expansion
459
459
 
460
- **Version**: 5.0.4
460
+ **Version**: 5.0.5
461
461
 
462
462
  **License**: MIT
463
463
 
@@ -610,7 +610,7 @@ SOFTWARE.
610
610
 
611
611
  ## minimatch
612
612
 
613
- **Version**: 10.2.4
613
+ **Version**: 10.2.5
614
614
 
615
615
  **License**: BlueOak-1.0.0
616
616
 
@@ -13,7 +13,14 @@ interface ControllerActionOptions {
13
13
  timeout?: number;
14
14
  }
15
15
  declare abstract class Controller {
16
+ #private;
16
17
  protected abstract executeScript<A = unknown, T = void>(fn: string | ((...args: A[]) => Promise<T>), ...args: unknown[]): Promise<T>;
18
+ /**
19
+ * Capture a screenshot using the test framework's native API.
20
+ * Subclasses override this to provide framework-specific implementations.
21
+ * Returns a base64-encoded PNG string.
22
+ */
23
+ abstract captureScreenshot(): Promise<string>;
17
24
  protected isStopped: boolean;
18
25
  protected debugLogger: Debugger;
19
26
  protected timeout: Variables['timeout'];
@@ -1,7 +1,19 @@
1
1
  "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
16
+ var _Controller_takeScreenshots, _Controller_screenshots;
5
17
  Object.defineProperty(exports, "__esModule", { value: true });
6
18
  const readVariables_1 = __importDefault(require("./utils/readVariables"));
7
19
  const sendResultsToServer_1 = __importDefault(require("./sendResultsToServer"));
@@ -10,6 +22,8 @@ const assertVariablesWereWritten_1 = require("./utils/assertVariablesWereWritten
10
22
  const constants_1 = require("./utils/constants");
11
23
  class Controller {
12
24
  constructor({ debugLoggerName, integrationName, configurationFunction }) {
25
+ _Controller_takeScreenshots.set(this, false);
26
+ _Controller_screenshots.set(this, {});
13
27
  (0, assertVariablesWereWritten_1.assertVariablesWereWritten)(integrationName, configurationFunction);
14
28
  const variables = (0, readVariables_1.default)();
15
29
  this.axeCoreSettings = variables.axe_core_settings;
@@ -17,6 +31,7 @@ class Controller {
17
31
  this.isStopped = !variables?.auto_analyze;
18
32
  this.timeout = variables.timeout;
19
33
  this.debugLogger = (0, createDebugger_1.default)(debugLoggerName);
34
+ __classPrivateFieldSet(this, _Controller_takeScreenshots, !!variables.take_screenshots, "f");
20
35
  }
21
36
  async start({ timeout } = {}) {
22
37
  this.debugLogger(`Start: Invoked`);
@@ -63,8 +78,9 @@ class Controller {
63
78
  return Promise.resolve();
64
79
  }
65
80
  let timer = null;
81
+ const screenshotId = __classPrivateFieldGet(this, _Controller_takeScreenshots, "f") ? crypto.randomUUID() : undefined;
66
82
  await Promise.race([
67
- this.executeScript(() => {
83
+ this.executeScript(({ screenshot_id }) => {
68
84
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
69
85
  return Promise.resolve({ message: 'Skipped - Invalid protocol' });
70
86
  }
@@ -80,19 +96,29 @@ class Controller {
80
96
  };
81
97
  window.addEventListener('axe:manual-mode-analyze-done', fn);
82
98
  const event = new CustomEvent('axe:manual-mode-analyze', {
83
- detail: { userRequestedAnalyze: false }
99
+ detail: { userRequestedAnalyze: false, screenshot_id }
84
100
  });
85
101
  window.dispatchEvent(event);
86
102
  });
87
- }),
103
+ }, { screenshot_id: screenshotId }),
88
104
  new Promise((_, reject) => {
89
105
  timer = setTimeout(() => {
90
106
  reject(new Error(`Watcher could not stop automatic mode because \`stop\` timed out. To resolve this problem, increase the \`timeout.stop\` property within your configuration or see ${constants_1.DOCS_LINK} for more troubleshooting.`));
91
107
  }, timeout || this.timeout.stop);
92
108
  })
93
109
  ])
94
- .then(result => {
110
+ .then(async (result) => {
95
111
  this.debugLogger(`Stop: ${result.message}`);
112
+ if (__classPrivateFieldGet(this, _Controller_takeScreenshots, "f") && result.hasViolations && screenshotId) {
113
+ this.debugLogger('Stop: Capturing screenshot');
114
+ try {
115
+ __classPrivateFieldGet(this, _Controller_screenshots, "f")[screenshotId] = await this.captureScreenshot();
116
+ this.debugLogger('Stop: Screenshot captured');
117
+ }
118
+ catch (error) {
119
+ this.debugLogger('Stop: Screenshot capture failed', { error });
120
+ }
121
+ }
96
122
  })
97
123
  .finally(() => {
98
124
  if (timer) {
@@ -114,8 +140,9 @@ class Controller {
114
140
  return;
115
141
  }
116
142
  let timer = null;
143
+ const screenshotId = __classPrivateFieldGet(this, _Controller_takeScreenshots, "f") ? crypto.randomUUID() : undefined;
117
144
  await Promise.race([
118
- this.executeScript(({ userRequestedAnalyze, isStopped, axeCoreSettings, runOptions }) => {
145
+ this.executeScript(({ userRequestedAnalyze, isStopped, axeCoreSettings, runOptions, screenshot_id }) => {
119
146
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
120
147
  if (userRequestedAnalyze) {
121
148
  return Promise.resolve({
@@ -141,7 +168,8 @@ class Controller {
141
168
  userRequestedAnalyze,
142
169
  isStopped,
143
170
  axeCoreSettings,
144
- runOptions
171
+ runOptions,
172
+ screenshot_id
145
173
  }
146
174
  });
147
175
  window.dispatchEvent(event);
@@ -150,7 +178,8 @@ class Controller {
150
178
  userRequestedAnalyze: __UserRequestedAnalyze,
151
179
  isStopped: this.isStopped,
152
180
  axeCoreSettings: this.axeCoreSettings,
153
- runOptions: this.runOptions
181
+ runOptions: this.runOptions,
182
+ screenshot_id: screenshotId
154
183
  }),
155
184
  new Promise((_, reject) => {
156
185
  timer = setTimeout(() => {
@@ -158,11 +187,21 @@ class Controller {
158
187
  }, timeout || this.timeout.analyze);
159
188
  })
160
189
  ])
161
- .then(result => {
190
+ .then(async (result) => {
162
191
  this.debugLogger(`Analyze: ${result.message}`);
163
192
  if (result.error) {
164
193
  throw new Error(result.message);
165
194
  }
195
+ if (__classPrivateFieldGet(this, _Controller_takeScreenshots, "f") && result.hasViolations && screenshotId) {
196
+ this.debugLogger('Analyze: Capturing screenshot');
197
+ try {
198
+ __classPrivateFieldGet(this, _Controller_screenshots, "f")[screenshotId] = await this.captureScreenshot();
199
+ this.debugLogger('Analyze: Screenshot captured');
200
+ }
201
+ catch (error) {
202
+ this.debugLogger('Analyze: Screenshot capture failed', { error });
203
+ }
204
+ }
166
205
  })
167
206
  .finally(() => {
168
207
  if (timer) {
@@ -173,8 +212,9 @@ class Controller {
173
212
  async flush({ timeout } = {}) {
174
213
  this.debugLogger(`Flush: Invoked (${this.isStopped ? 'auto-analysis stopped' : 'may analyze implicitly'})`);
175
214
  let timer = null;
215
+ const screenshotId = __classPrivateFieldGet(this, _Controller_takeScreenshots, "f") ? crypto.randomUUID() : undefined;
176
216
  await Promise.race([
177
- this.executeScript(({ isStopped, axeCoreSettings, runOptions }) => {
217
+ this.executeScript(({ isStopped, axeCoreSettings, runOptions, screenshot_id }) => {
178
218
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
179
219
  return Promise.resolve([]);
180
220
  }
@@ -197,7 +237,8 @@ class Controller {
197
237
  detail: {
198
238
  isStopped,
199
239
  axeCoreSettings,
200
- runOptions
240
+ runOptions,
241
+ screenshot_id
201
242
  }
202
243
  });
203
244
  window.dispatchEvent(event);
@@ -205,7 +246,8 @@ class Controller {
205
246
  }, {
206
247
  isStopped: this.isStopped,
207
248
  axeCoreSettings: this.axeCoreSettings,
208
- runOptions: this.runOptions
249
+ runOptions: this.runOptions,
250
+ screenshot_id: screenshotId
209
251
  }),
210
252
  new Promise((_, reject) => {
211
253
  timer = setTimeout(() => {
@@ -215,6 +257,35 @@ class Controller {
215
257
  ])
216
258
  .then(async (results) => {
217
259
  this.debugLogger(`Flush: Received ${results.length} results`);
260
+ if (__classPrivateFieldGet(this, _Controller_takeScreenshots, "f")) {
261
+ for (const result of results) {
262
+ const hasViolations = (result.results?.violations?.length ?? 0) > 0;
263
+ if (!hasViolations) {
264
+ continue;
265
+ }
266
+ if (result.screenshot_id &&
267
+ result.screenshot_id in __classPrivateFieldGet(this, _Controller_screenshots, "f")) {
268
+ result.screenshot = __classPrivateFieldGet(this, _Controller_screenshots, "f")[result.screenshot_id];
269
+ }
270
+ else if (result.screenshot_id === screenshotId) {
271
+ this.debugLogger('Flush: Capturing screenshot');
272
+ try {
273
+ result.screenshot = await this.captureScreenshot();
274
+ this.debugLogger('Flush: Screenshot captured');
275
+ }
276
+ catch (error) {
277
+ this.debugLogger('Flush: Screenshot capture failed', {
278
+ error
279
+ });
280
+ result.screenshot_id = null;
281
+ }
282
+ }
283
+ else {
284
+ result.screenshot_id = null;
285
+ }
286
+ }
287
+ __classPrivateFieldSet(this, _Controller_screenshots, {}, "f");
288
+ }
218
289
  await (0, sendResultsToServer_1.default)({
219
290
  results,
220
291
  debugLogger: this.debugLogger
@@ -228,5 +299,6 @@ class Controller {
228
299
  });
229
300
  }
230
301
  }
302
+ _Controller_takeScreenshots = new WeakMap(), _Controller_screenshots = new WeakMap();
231
303
  exports.default = Controller;
232
304
  //# sourceMappingURL=Controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Controller.js","sourceRoot":"","sources":["../src/Controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Controller.js","sourceRoot":"","sources":["../src/Controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0EAAiD;AACjD,gFAAwE;AACxE,sEAA6C;AAE7C,mFAA+E;AAE/E,iDAA6C;AAgB7C,MAAe,UAAU;IAsBvB,YAAY,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACJ;QAPnB,sCAAmB,KAAK,EAAA;QACxB,kCAAuC,EAAE,EAAA;QAOvC,IAAA,uDAA0B,EAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;QAClE,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;QACjC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,iBAAoC,CAAA;QACrE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,YAAY,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,IAAA,wBAAc,EAAC,eAAe,CAAC,CAAA;QAClD,uBAAA,IAAI,+BAAoB,CAAC,CAAC,SAAS,CAAC,gBAAgB,MAAA,CAAA;IACtD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,KAA8B,EAAE;QAC1D,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;QAClC,IAAI,KAAK,GAA0B,IAAI,CAAA;QAEvC,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;gBACtB,OAAO,IAAI,OAAO,CAAsB,OAAO,CAAC,EAAE;oBAChD,IACE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChE,CAAC;wBACD,OAAO,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAA;oBAC1D,CAAC;oBAED,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;wBAC/B,OAAO,CAAC;4BACN,OAAO,EACL,2DAA2D;yBAC9D,CAAC,CAAA;oBACJ,CAAC;oBAED,MAAM,EAAE,GAAG,CAAC,KAAkB,EAAQ,EAAE;wBACtC,MAAM,CAAC,mBAAmB,CACxB,4BAA4B,EAC5B,EAAgB,CACjB,CAAA;wBACD,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC5C,CAAC,CAAA;oBACD,MAAM,CAAC,gBAAgB,CACrB,4BAA4B,EAC5B,EAAgB,CACjB,CAAA;oBACD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAA;oBACtD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC;YACF,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,MAAM,CACJ,IAAI,KAAK,CACP,yKAAyK,qBAAS,4BAA4B,CAC/M,CACF,CAAA;gBACH,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC,CAAC;SACH,CAAC;aACC,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,UAAU,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9C,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACxB,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,KAA8B,EAAE;QACzD,IAAI,CAAC,WAAW,CACd,kBAAkB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB,GAAG,CACjF,CAAA;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QAED,IAAI,KAAK,GAA0B,IAAI,CAAA;QACvC,MAAM,YAAY,GAAG,uBAAA,IAAI,mCAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAE5E,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,aAAa,CAChB,CAAC,EACC,aAAa,EAGd,EAAyD,EAAE;gBAC1D,IACE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChE,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAA;gBACnE,CAAC;gBAED,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC/B,OAAO,OAAO,CAAC,OAAO,CAAC;wBACrB,OAAO,EAAE,qDAAqD;qBAC/D,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC3B,MAAM,EAAE,GAAG,CAAC,KAAkB,EAAQ,EAAE;wBACtC,MAAM,CAAC,mBAAmB,CACxB,8BAA8B,EAC9B,EAAgB,CACjB,CAAA;wBACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBACvB,CAAC,CAAA;oBACD,MAAM,CAAC,gBAAgB,CACrB,8BAA8B,EAC9B,EAAgB,CACjB,CAAA;oBACD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,yBAAyB,EAAE;wBACvD,MAAM,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE;qBACvD,CAAC,CAAA;oBACF,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC,CAAC,CAAA;YACJ,CAAC,EACD,EAAE,aAAa,EAAE,YAAY,EAAE,CAChC;YACD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,MAAM,CACJ,IAAI,KAAK,CACP,sKAAsK,qBAAS,4BAA4B,CAC5M,CACF,CAAA;gBACH,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAClC,CAAC,CAAC;SACH,CAAC;aACC,IAAI,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;YAE3C,IAAI,uBAAA,IAAI,mCAAiB,IAAI,MAAM,CAAC,aAAa,IAAI,YAAY,EAAE,CAAC;gBAClE,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;gBAC9C,IAAI,CAAC;oBACH,uBAAA,IAAI,+BAAa,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;oBAChE,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAA;gBAC/C,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACvB,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,EACE,QAAQ,EACR,sBAAsB,GAAG,IAAI,KAI3B,EAAE,EACN,EAAE,OAAO,KAA8B,EAAE;QAEzC,IAAI,CAAC,WAAW,CAAC,mBAAmB,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE;YACtE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,oBAAoB,EAAE,sBAAsB;SAC7C,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;gBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,oBAAoB,EAAE,sBAAsB;aAC7C,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,KAAK,GAA0B,IAAI,CAAA;QACvC,MAAM,YAAY,GAAG,uBAAA,IAAI,mCAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAE5E,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,aAAa,CAChB,CAAC,EACC,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,UAAU,EACV,aAAa,EAOd,EAIE,EAAE;gBACH,IACE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChE,CAAC;oBACD,IAAI,oBAAoB,EAAE,CAAC;wBACzB,OAAO,OAAO,CAAC,OAAO,CAAC;4BACrB,OAAO,EAAE,+CAA+C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;4BAClF,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAA;oBACJ,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAA;gBACnE,CAAC;gBAED,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC/B,OAAO,OAAO,CAAC,OAAO,CAAC;wBACrB,OAAO,EAAE,qDAAqD;qBAC/D,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,IAAI,OAAO,CAIf,OAAO,CAAC,EAAE;oBACX,MAAM,EAAE,GAAG,CAAC,KAAkB,EAAQ,EAAE;wBACtC,MAAM,CAAC,mBAAmB,CACxB,8BAA8B,EAC9B,EAAgB,CACjB,CAAA;wBACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBACvB,CAAC,CAAA;oBACD,MAAM,CAAC,gBAAgB,CACrB,8BAA8B,EAC9B,EAAgB,CACjB,CAAA;oBACD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,yBAAyB,EAAE;wBACvD,MAAM,EAAE;4BACN,oBAAoB;4BACpB,SAAS;4BACT,eAAe;4BACf,UAAU;4BACV,aAAa;yBACd;qBACF,CAAC,CAAA;oBACF,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC,CAAC,CAAA;YACJ,CAAC,EACD;gBACE,oBAAoB,EAAE,sBAAsB;gBAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,YAAY;aAC5B,CACF;YACD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,MAAM,CACJ,IAAI,KAAK,CACP,0KAA0K,qBAAS,4BAA4B,CAChN,CACF,CAAA;gBACH,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACrC,CAAC,CAAC;SACH,CAAC;aACC,IAAI,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;YAE9C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACjC,CAAC;YAED,IAAI,uBAAA,IAAI,mCAAiB,IAAI,MAAM,CAAC,aAAa,IAAI,YAAY,EAAE,CAAC;gBAClE,IAAI,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAA;gBACjD,IAAI,CAAC;oBACH,uBAAA,IAAI,+BAAa,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;oBAChE,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAA;gBAClD,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnE,CAAC;YACH,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,KAA8B,EAAE;QAC1D,IAAI,CAAC,WAAW,CACd,mBAAmB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,GAAG,CAC1F,CAAA;QAED,IAAI,KAAK,GAA0B,IAAI,CAAA;QACvC,MAAM,YAAY,GAAG,uBAAA,IAAI,mCAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAE5E,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,aAAa,CAChB,CAAC,EACC,SAAS,EACT,eAAe,EACf,UAAU,EACV,aAAa,EAMd,EAAE,EAAE;gBACH,IACE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChE,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC5B,CAAC;gBAED,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC5B,CAAC;gBAED,OAAO,IAAI,OAAO,CAAW,OAAO,CAAC,EAAE;oBACrC,MAAM,eAAe,GAAa,EAAE,CAAA;oBAEpC,MAAM,UAAU,GAAG,GAAS,EAAE;wBAC5B,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;wBACvD,MAAM,CAAC,mBAAmB,CACxB,YAAY,EACZ,WAAyB,CAC1B,CAAA;wBACD,OAAO,CAAC,eAAe,CAAC,CAAA;oBAC1B,CAAC,CAAA;oBAED,MAAM,WAAW,GAAG,CAAC,CAAwB,EAAQ,EAAE;wBACrD,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;oBACnC,CAAC,CAAA;oBAED,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAyB,CAAC,CAAA;oBAChE,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;oBAEpD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,EAAE;wBAC/C,MAAM,EAAE;4BACN,SAAS;4BACT,eAAe;4BACf,UAAU;4BACV,aAAa;yBACd;qBACF,CAAC,CAAA;oBACF,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC,CAAC,CAAA;YACJ,CAAC,EACD;gBACE,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,YAAY;aAC5B,CACF;YACD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,MAAM,CACJ,IAAI,KAAK,CACP,sJAAsJ,qBAAS,4BAA4B,CAC5L,CACF,CAAA;gBACH,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC,CAAC;SACH,CAAC;aACC,IAAI,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,mBAAmB,OAAO,CAAC,MAAM,UAAU,CAAC,CAAA;YAE7D,IAAI,uBAAA,IAAI,mCAAiB,EAAE,CAAC;gBAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;oBAEnE,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,SAAQ;oBACV,CAAC;oBAED,IACE,MAAM,CAAC,aAAa;wBACpB,MAAM,CAAC,aAAa,IAAI,uBAAA,IAAI,+BAAa,EACzC,CAAC;wBACD,MAAM,CAAC,UAAU,GAAG,uBAAA,IAAI,+BAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;oBAC7D,CAAC;yBAAM,IAAI,MAAM,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;wBAEjD,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAA;wBAC/C,IAAI,CAAC;4BACH,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;4BAClD,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;wBAChD,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,CAAC,WAAW,CAAC,kCAAkC,EAAE;gCACnD,KAAK;6BACN,CAAC,CAAA;4BACF,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;wBAC7B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;oBAC7B,CAAC;gBACH,CAAC;gBACD,uBAAA,IAAI,2BAAgB,EAAE,MAAA,CAAA;YACxB,CAAC;YAED,MAAM,IAAA,6BAAmB,EAAC;gBACxB,OAAO;gBACP,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAA;YACF,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;QACrC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CAAA;IACN,CAAC;CACF;;AAED,kBAAe,UAAU,CAAA"}
@@ -5,6 +5,7 @@ export declare const cypressConfigAutoAnalyzeFlag = "__AXE_WATCHER_AUTO_ANALYZE"
5
5
  export declare const cypressAxeCoreSettingsFlag = "__AXE_WATCHER_AXE_CORE_SETTINGS";
6
6
  export declare const cypressRunOptionsFlag = "__AXE_WATCHER_RUN_OPTIONS";
7
7
  export declare const cypressEnabledTestingModes = "__AXE_WATCHER_CYPRESS_TESTING_TYPES";
8
+ export declare const cypressTakeScreenshotsFlag = "__AXE_WATCHER_TAKE_SCREENSHOTS";
8
9
  export declare const cypressAxeWatcherDebug = "__AXE_WATCHER_DEBUG";
9
10
  /**
10
11
  * Create a Cypress config that uses the axe Watcher extension.
@@ -18,5 +19,5 @@ export declare const cypressConfig: (config: Cypress.ConfigOptions & CypressConf
18
19
  * @param userConfig The user's Cypress configuration
19
20
  * @returns A setupNodeEvents function configured for the specified test type
20
21
  */
21
- export declare const createSetupNodeEvents: (testType: "e2e" | "component", userConfig: Cypress.ConfigOptions) => (cypressOn: Cypress.PluginEvents, ...args: unknown[]) => Promise<void | undefined | Cypress.PluginConfigOptions>;
22
+ export declare const createSetupNodeEvents: (testType: "e2e" | "component", userConfig: Cypress.ConfigOptions, screenshotDir?: string) => (cypressOn: Cypress.PluginEvents, ...args: unknown[]) => Promise<void | undefined | Cypress.PluginConfigOptions>;
22
23
  export declare const normalizeTestingTypes: (testingTypes: string | string[] | undefined) => string[];
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.normalizeTestingTypes = exports.createSetupNodeEvents = exports.cypressConfig = exports.cypressAxeWatcherDebug = exports.cypressEnabledTestingModes = exports.cypressRunOptionsFlag = exports.cypressAxeCoreSettingsFlag = exports.cypressConfigAutoAnalyzeFlag = exports.cypressConfigRunFlag = exports.configTimeout = void 0;
6
+ exports.normalizeTestingTypes = exports.createSetupNodeEvents = exports.cypressConfig = exports.cypressAxeWatcherDebug = exports.cypressTakeScreenshotsFlag = exports.cypressEnabledTestingModes = exports.cypressRunOptionsFlag = exports.cypressAxeCoreSettingsFlag = exports.cypressConfigAutoAnalyzeFlag = exports.cypressConfigRunFlag = exports.configTimeout = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
7
9
  const sendResultsToServer_1 = __importDefault(require("../sendResultsToServer"));
8
10
  const EventForwarder_1 = __importDefault(require("../EventForwarder"));
9
11
  const writeVariables_1 = __importDefault(require("../utils/writeVariables"));
@@ -13,6 +15,7 @@ const mergeChromeArgs_1 = __importDefault(require("../utils/mergeChromeArgs"));
13
15
  const createDebugger_1 = __importDefault(require("../createDebugger"));
14
16
  const readVariables_1 = __importDefault(require("../utils/readVariables"));
15
17
  const checkUserArgs_1 = require("../utils/checkUserArgs");
18
+ const constants_1 = require("../utils/constants");
16
19
  const debugLogger = (0, createDebugger_1.default)('CypressController');
17
20
  exports.configTimeout = '__AXE_WATCHER_TIMEOUT_CONFIG';
18
21
  exports.cypressConfigRunFlag = '__AXE_WATCHER_CYPRESS_CONFIG_RUN';
@@ -20,7 +23,25 @@ exports.cypressConfigAutoAnalyzeFlag = '__AXE_WATCHER_AUTO_ANALYZE';
20
23
  exports.cypressAxeCoreSettingsFlag = '__AXE_WATCHER_AXE_CORE_SETTINGS';
21
24
  exports.cypressRunOptionsFlag = '__AXE_WATCHER_RUN_OPTIONS';
22
25
  exports.cypressEnabledTestingModes = '__AXE_WATCHER_CYPRESS_TESTING_TYPES';
26
+ exports.cypressTakeScreenshotsFlag = '__AXE_WATCHER_TAKE_SCREENSHOTS';
23
27
  exports.cypressAxeWatcherDebug = '__AXE_WATCHER_DEBUG';
28
+ function isErrnoException(error) {
29
+ return error instanceof Error && 'code' in error;
30
+ }
31
+ function moveFile(src, dest) {
32
+ try {
33
+ fs_1.default.renameSync(src, dest);
34
+ }
35
+ catch (error) {
36
+ if (isErrnoException(error) && error.code === 'EXDEV') {
37
+ fs_1.default.copyFileSync(src, dest);
38
+ fs_1.default.unlinkSync(src);
39
+ }
40
+ else {
41
+ throw error;
42
+ }
43
+ }
44
+ }
24
45
  const cypressConfig = (config) => {
25
46
  const { axe, ...userConfig } = config;
26
47
  const { DEBUG } = process.env;
@@ -48,6 +69,7 @@ const cypressConfig = (config) => {
48
69
  [exports.cypressRunOptionsFlag]: variables.run_options,
49
70
  [exports.cypressEnabledTestingModes]: testingTypes,
50
71
  [exports.cypressAxeWatcherDebug]: hasWatcherDebug,
72
+ [exports.cypressTakeScreenshotsFlag]: !!variables.take_screenshots,
51
73
  [exports.cypressConfigAutoAnalyzeFlag]: axe.autoAnalyze === undefined ? true : axe.autoAnalyze
52
74
  };
53
75
  if (userConfig.e2e?.env) {
@@ -64,19 +86,19 @@ const cypressConfig = (config) => {
64
86
  ...userConfig,
65
87
  e2e: {
66
88
  ...userConfig.e2e,
67
- setupNodeEvents: (0, exports.createSetupNodeEvents)('e2e', userConfig)
89
+ setupNodeEvents: (0, exports.createSetupNodeEvents)('e2e', userConfig, variables.screenshot_dir)
68
90
  },
69
91
  ...(shouldRunWatcherInComponentMode &&
70
92
  userConfig.component?.devServer && {
71
93
  component: {
72
94
  ...userConfig.component,
73
- setupNodeEvents: (0, exports.createSetupNodeEvents)('component', userConfig)
95
+ setupNodeEvents: (0, exports.createSetupNodeEvents)('component', userConfig, variables.screenshot_dir)
74
96
  }
75
97
  })
76
98
  };
77
99
  };
78
100
  exports.cypressConfig = cypressConfig;
79
- const createSetupNodeEvents = (testType, userConfig) => {
101
+ const createSetupNodeEvents = (testType, userConfig, screenshotDir) => {
80
102
  return async function setupNodeEvents(cypressOn, ...args) {
81
103
  const eventForwarder = new EventForwarder_1.default();
82
104
  const on = eventForwarder.on;
@@ -86,11 +108,59 @@ const createSetupNodeEvents = (testType, userConfig) => {
86
108
  [exports.cypressConfigRunFlag]: true
87
109
  });
88
110
  }
111
+ const screenshotStore = {};
112
+ on('after:screenshot', details => {
113
+ if (!details.name ||
114
+ !details.name.startsWith(constants_1.AXE_WATCHER_SCREENSHOT_PREFIX)) {
115
+ return details;
116
+ }
117
+ try {
118
+ const base64 = fs_1.default.readFileSync(details.path).toString('base64');
119
+ if (screenshotDir) {
120
+ fs_1.default.mkdirSync(screenshotDir, { recursive: true });
121
+ const dest = path_1.default.join(screenshotDir, `${details.name}.png`);
122
+ moveFile(details.path, dest);
123
+ screenshotStore[details.name] = { base64, path: dest };
124
+ debugLogger('Screenshot captured and moved', {
125
+ name: details.name,
126
+ dest
127
+ });
128
+ }
129
+ else {
130
+ fs_1.default.unlinkSync(details.path);
131
+ screenshotStore[details.name] = { base64 };
132
+ debugLogger('Screenshot captured', { name: details.name });
133
+ }
134
+ }
135
+ catch (error) {
136
+ debugLogger('Failed to process screenshot file', { error });
137
+ }
138
+ return details;
139
+ });
89
140
  on('task', {
90
141
  __uploadAxeWatcherResults: async ({ results, skipped_url }) => {
91
142
  if (!results?.length && !skipped_url) {
92
143
  return null;
93
144
  }
145
+ for (const result of results ?? []) {
146
+ if (!result.screenshot_id) {
147
+ continue;
148
+ }
149
+ if (!(result.screenshot_id in screenshotStore)) {
150
+ debugLogger('Screenshot missing for result; clearing screenshot_id', {
151
+ screenshot_id: result.screenshot_id
152
+ });
153
+ result.screenshot_id = null;
154
+ continue;
155
+ }
156
+ const stored = screenshotStore[result.screenshot_id];
157
+ result.screenshot = stored.base64;
158
+ result.screenshot_path = stored.path ?? null;
159
+ delete screenshotStore[result.screenshot_id];
160
+ debugLogger('Screenshot attached for result', {
161
+ screenshot_id: result.screenshot_id
162
+ });
163
+ }
94
164
  const sentResult = await (0, sendResultsToServer_1.default)({
95
165
  skipped_url,
96
166
  results,
@@ -1 +1 @@
1
- {"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress/cypress.ts"],"names":[],"mappings":";;;;;;AAAA,iFAAwD;AACxD,uEAA8C;AAC9C,6EAEgC;AAChC,6FAA2D;AAC3D,kFAA8E;AAC9E,+EAAsD;AACtD,uEAA8C;AAC9C,2EAAkD;AAClD,0DAAsD;AAEtD,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,mBAAmB,CAAC,CAAA;AAE1C,QAAA,aAAa,GAAG,8BAA8B,CAAA;AAC9C,QAAA,oBAAoB,GAAG,kCAAkC,CAAA;AACzD,QAAA,4BAA4B,GAAG,4BAA4B,CAAA;AAC3D,QAAA,0BAA0B,GAAG,iCAAiC,CAAA;AAC9D,QAAA,qBAAqB,GAAG,2BAA2B,CAAA;AACnD,QAAA,0BAA0B,GAAG,qCAAqC,CAAA;AAClE,QAAA,sBAAsB,GAAG,qBAAqB,CAAA;AAQpD,MAAM,aAAa,GAAG,CAC3B,MAAoD,EAC7B,EAAE;IACzB,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAA;IACrC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;IAC7B,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAE9D,MAAM,YAAY,GAAG,IAAA,6BAAqB,EAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAE5D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAEnB,OAAO,CAAC,IAAI,CACV,6JAA6J,CAC9J,CAAA;IACH,CAAC;IAED,IAAA,wBAAc,EAAC;QACb,GAAG,GAAG;QAEN,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;IACF,IAAA,gCAAa,EAAC;QACZ,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE;YAEb,4BAA4B;SAC7B;KACF,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;IAEjC,MAAM,+BAA+B,GAAG,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAE3E,MAAM,YAAY,GAAG;QACnB,CAAC,4BAAoB,CAAC,EAAE,IAAI;QAC5B,CAAC,qBAAa,CAAC,EAAE,SAAS,CAAC,OAAO;QAClC,CAAC,kCAA0B,CAAC,EAAE,SAAS,CAAC,iBAAiB;QACzD,CAAC,6BAAqB,CAAC,EAAE,SAAS,CAAC,WAAW;QAC9C,CAAC,kCAA0B,CAAC,EAAE,YAAY;QAC1C,CAAC,8BAAsB,CAAC,EAAE,eAAe;QACzC,CAAC,oCAA4B,CAAC,EAC5B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW;KACzD,CAAA;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,+BAA+B,EAAE,CAAC;QACjE,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CACtC,EAAE,EACF,UAAU,CAAC,SAAS,CAAC,GAAG,EACxB,YAAY,CACb,CAAA;IACH,CAAC;IAED,IACE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG;QACpB,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,+BAA+B,CAAC,EAC/D,CAAC;QACD,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,GAAG,EAAE;YACH,GAAG,UAAU,CAAC,GAAG;YACjB,eAAe,EAAE,IAAA,6BAAqB,EAAC,KAAK,EAAE,UAAU,CAAC;SAC1D;QACD,GAAG,CAAC,+BAA+B;YACjC,UAAU,CAAC,SAAS,EAAE,SAAS,IAAI;YACjC,SAAS,EAAE;gBACT,GAAG,UAAU,CAAC,SAAS;gBACvB,eAAe,EAAE,IAAA,6BAAqB,EAAC,WAAW,EAAE,UAAU,CAAC;aAChE;SACF,CAAC;KACL,CAAA;AACH,CAAC,CAAA;AA7EY,QAAA,aAAa,iBA6EzB;AAQM,MAAM,qBAAqB,GAAG,CACnC,QAA6B,EAC7B,UAAiC,EACjC,EAAE;IACF,OAAO,KAAK,UAAU,eAAe,CACnC,SAA+B,EAC/B,GAAG,IAAe;QAalB,MAAM,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAA;QAC3C,MAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAA;QAc5B,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CACvE,EAAE,EAGF,GAAG,IAAI,CACR,CAAA;QAED,IAAI,mBAAmB,EAAE,CAAC;YAKxB,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,CAAC,GAAG,EAAE;gBACnE,CAAC,4BAAoB,CAAC,EAAE,IAAI;aAC7B,CAAC,CAAA;QACJ,CAAC;QAED,EAAE,CAAC,MAAM,EAAE;YACT,yBAAyB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;gBAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;oBAGrC,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAmB,EAAC;oBAC3C,WAAW;oBACX,OAAO;oBACP,WAAW;iBACZ,CAAC,CAAA;gBACF,OAAO,UAAU,IAAI,IAAI,CAAA;YAC3B,CAAC;YACD,iBAAiB,EAAE,CAAC,OAAe,EAAE,EAAE;gBACrC,WAAW,CAAC,OAAO,CAAC,CAAA;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE;YAGrD,IACE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EACnC,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,wKAAwK,OAAO,CAAC,IAAI,mIAAmI,CACxT,CAAA;YACH,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,qDAAyB,CACjC,sPAAsP,CACvP,CAAA;YACH,CAAC;YAGD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAA;YACvC,IAAA,6BAAa,EAAC,YAAY,CAAC,CAAA;YAC3B,aAAa,CAAC,IAAI,GAAG,IAAA,yBAAe,EAAC,YAAY,EAAE;gBACjD,sBAAsB,EAAE,KAAK;gBAC7B,kCAAkC,EAAE,IAAI;aACzC,CAAC,CAAA;YAEF,OAAO,aAAa,CAAA;QACtB,CAAC,CAAC,CAAA;QAMF,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEjC,OAAO,mBAAmB,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC,CAAA;AA5GY,QAAA,qBAAqB,yBA4GjC;AAEM,MAAM,qBAAqB,GAAG,CACnC,YAA2C,EACjC,EAAE;IACZ,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAE9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAElB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAA;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CACvE,CAAA;QAED,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,mCAAmC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzH,CAAA;QACH,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,kCAAkC,YAAY,wBAAwB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtG,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC,CAAA;AAnCY,QAAA,qBAAqB,yBAmCjC"}
1
+ {"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress/cypress.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,iFAAyE;AACzE,uEAA8C;AAC9C,6EAEgC;AAChC,6FAA2D;AAC3D,kFAA8E;AAC9E,+EAAsD;AACtD,uEAA8C;AAC9C,2EAAkD;AAClD,0DAAsD;AACtD,kDAAkE;AAElE,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,mBAAmB,CAAC,CAAA;AAE1C,QAAA,aAAa,GAAG,8BAA8B,CAAA;AAC9C,QAAA,oBAAoB,GAAG,kCAAkC,CAAA;AACzD,QAAA,4BAA4B,GAAG,4BAA4B,CAAA;AAC3D,QAAA,0BAA0B,GAAG,iCAAiC,CAAA;AAC9D,QAAA,qBAAqB,GAAG,2BAA2B,CAAA;AACnD,QAAA,0BAA0B,GAAG,qCAAqC,CAAA;AAClE,QAAA,0BAA0B,GAAG,gCAAgC,CAAA;AAC7D,QAAA,sBAAsB,GAAG,qBAAqB,CAAA;AAE3D,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAA;AAClD,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY;IACzC,IAAI,CAAC;QACH,YAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACtD,YAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC1B,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAQM,MAAM,aAAa,GAAG,CAC3B,MAAoD,EAC7B,EAAE;IACzB,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAA;IACrC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;IAC7B,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAE9D,MAAM,YAAY,GAAG,IAAA,6BAAqB,EAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAE5D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAEnB,OAAO,CAAC,IAAI,CACV,6JAA6J,CAC9J,CAAA;IACH,CAAC;IAED,IAAA,wBAAc,EAAC;QACb,GAAG,GAAG;QAEN,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;IACF,IAAA,gCAAa,EAAC;QACZ,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE;YAEb,4BAA4B;SAC7B;KACF,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;IAEjC,MAAM,+BAA+B,GAAG,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAE3E,MAAM,YAAY,GAAG;QACnB,CAAC,4BAAoB,CAAC,EAAE,IAAI;QAC5B,CAAC,qBAAa,CAAC,EAAE,SAAS,CAAC,OAAO;QAClC,CAAC,kCAA0B,CAAC,EAAE,SAAS,CAAC,iBAAiB;QACzD,CAAC,6BAAqB,CAAC,EAAE,SAAS,CAAC,WAAW;QAC9C,CAAC,kCAA0B,CAAC,EAAE,YAAY;QAC1C,CAAC,8BAAsB,CAAC,EAAE,eAAe;QACzC,CAAC,kCAA0B,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB;QAC1D,CAAC,oCAA4B,CAAC,EAC5B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW;KACzD,CAAA;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,+BAA+B,EAAE,CAAC;QACjE,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CACtC,EAAE,EACF,UAAU,CAAC,SAAS,CAAC,GAAG,EACxB,YAAY,CACb,CAAA;IACH,CAAC;IAED,IACE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG;QACpB,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,+BAA+B,CAAC,EAC/D,CAAC;QACD,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,GAAG,EAAE;YACH,GAAG,UAAU,CAAC,GAAG;YACjB,eAAe,EAAE,IAAA,6BAAqB,EACpC,KAAK,EACL,UAAU,EACV,SAAS,CAAC,cAAc,CACzB;SACF;QACD,GAAG,CAAC,+BAA+B;YACjC,UAAU,CAAC,SAAS,EAAE,SAAS,IAAI;YACjC,SAAS,EAAE;gBACT,GAAG,UAAU,CAAC,SAAS;gBACvB,eAAe,EAAE,IAAA,6BAAqB,EACpC,WAAW,EACX,UAAU,EACV,SAAS,CAAC,cAAc,CACzB;aACF;SACF,CAAC;KACL,CAAA;AACH,CAAC,CAAA;AAtFY,QAAA,aAAa,iBAsFzB;AAQM,MAAM,qBAAqB,GAAG,CACnC,QAA6B,EAC7B,UAAiC,EACjC,aAAsB,EACtB,EAAE;IACF,OAAO,KAAK,UAAU,eAAe,CACnC,SAA+B,EAC/B,GAAG,IAAe;QAalB,MAAM,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAA;QAC3C,MAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAA;QAc5B,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CACvE,EAAE,EAGF,GAAG,IAAI,CACR,CAAA;QAED,IAAI,mBAAmB,EAAE,CAAC;YAKxB,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,CAAC,GAAG,EAAE;gBACnE,CAAC,4BAAoB,CAAC,EAAE,IAAI;aAC7B,CAAC,CAAA;QACJ,CAAC;QAKD,MAAM,eAAe,GACnB,EAAE,CAAA;QACJ,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE;YAC/B,IACE,CAAC,OAAO,CAAC,IAAI;gBACb,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,yCAA6B,CAAC,EACvD,CAAC;gBACD,OAAO,OAAO,CAAA;YAChB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAE/D,IAAI,aAAa,EAAE,CAAC;oBAGlB,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;oBAChD,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA;oBAC5D,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;oBAC5B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;oBACtD,WAAW,CAAC,+BAA+B,EAAE;wBAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI;qBACL,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBAC3B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAA;oBAC1C,WAAW,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC5D,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,WAAW,CAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7D,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,MAAM,EAAE;YACT,yBAAyB,EAAE,KAAK,EAAE,EAChC,OAAO,EACP,WAAW,EAIZ,EAAE,EAAE;gBACH,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;oBAGrC,OAAO,IAAI,CAAA;gBACb,CAAC;gBAGD,KAAK,MAAM,MAAM,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;wBAC1B,SAAQ;oBACV,CAAC;oBAED,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,eAAe,CAAC,EAAE,CAAC;wBAC/C,WAAW,CACT,uDAAuD,EACvD;4BACE,aAAa,EAAE,MAAM,CAAC,aAAa;yBACpC,CACF,CAAA;wBACD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;wBAC3B,SAAQ;oBACV,CAAC;oBACD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;oBACpD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;oBACjC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;oBAC5C,OAAO,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;oBAC5C,WAAW,CAAC,gCAAgC,EAAE;wBAC5C,aAAa,EAAE,MAAM,CAAC,aAAa;qBACpC,CAAC,CAAA;gBACJ,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAmB,EAAC;oBAC3C,WAAW;oBACX,OAAO;oBACP,WAAW;iBACZ,CAAC,CAAA;gBACF,OAAO,UAAU,IAAI,IAAI,CAAA;YAC3B,CAAC;YACD,iBAAiB,EAAE,CAAC,OAAe,EAAE,EAAE;gBACrC,WAAW,CAAC,OAAO,CAAC,CAAA;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE;YAGrD,IACE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EACnC,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,wKAAwK,OAAO,CAAC,IAAI,mIAAmI,CACxT,CAAA;YACH,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,qDAAyB,CACjC,sPAAsP,CACvP,CAAA;YACH,CAAC;YAGD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAA;YACvC,IAAA,6BAAa,EAAC,YAAY,CAAC,CAAA;YAC3B,aAAa,CAAC,IAAI,GAAG,IAAA,yBAAe,EAAC,YAAY,EAAE;gBACjD,sBAAsB,EAAE,KAAK;gBAC7B,kCAAkC,EAAE,IAAI;aACzC,CAAC,CAAA;YAEF,OAAO,aAAa,CAAA;QACtB,CAAC,CAAC,CAAA;QAMF,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEjC,OAAO,mBAAmB,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC,CAAA;AAnLY,QAAA,qBAAqB,yBAmLjC;AAEM,MAAM,qBAAqB,GAAG,CACnC,YAA2C,EACjC,EAAE;IACZ,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAE9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAElB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAA;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CACvE,CAAA;QAED,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,mCAAmC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzH,CAAA;QACH,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,kCAAkC,YAAY,wBAAwB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtG,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC,CAAA;AAnCY,QAAA,qBAAqB,yBAmCjC"}
@@ -8,7 +8,9 @@ const configTimeout = '__AXE_WATCHER_TIMEOUT_CONFIG';
8
8
  const cypressAxeCoreSettingsFlag = '__AXE_WATCHER_AXE_CORE_SETTINGS';
9
9
  const cypressRunOptionsFlag = '__AXE_WATCHER_RUN_OPTIONS';
10
10
  const cypressEnabledTestingModes = '__AXE_WATCHER_CYPRESS_TESTING_TYPES';
11
+ const cypressConfigTakeScreenshotsFlag = '__AXE_WATCHER_TAKE_SCREENSHOTS';
11
12
  let isStopped = !Cypress.env(cypressConfigAutoAnalyzeFlag);
13
+ const takeScreenshots = !!Cypress.env(cypressConfigTakeScreenshotsFlag);
12
14
  exports.WRAPPED_COMMANDS = [
13
15
  'blur',
14
16
  'check',
@@ -34,6 +36,22 @@ const logDebugAxeWatcher = ({ message }) => {
34
36
  }
35
37
  };
36
38
  const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].includes(location.protocol);
39
+ function captureScreenshotSafe(screenshotId) {
40
+ const onFail = (err) => {
41
+ logDebugAxeWatcher({
42
+ message: `Screenshot capture failed: ${err.message}`
43
+ });
44
+ return false;
45
+ };
46
+ cy.once('fail', onFail);
47
+ cy.screenshot(screenshotId, {
48
+ capture: 'viewport',
49
+ overwrite: true,
50
+ log: false
51
+ }).then(() => {
52
+ cy.off('fail', onFail);
53
+ });
54
+ }
37
55
  if (!Cypress.env(cypressConfigRunFlag)) {
38
56
  throw new Error(`Cypress is not configured for axe watcher. Please ensure that axe watcher's cypressConfig() is invoked within Cypress' defineConfig() in your ${Cypress.config('configFile')}. All tests will fail with this error.`);
39
57
  }
@@ -100,6 +118,9 @@ function axeWatcherFlushCommand({ timeout } = {}) {
100
118
  let onFlushEnd;
101
119
  let onAxeResult;
102
120
  let timer = null;
121
+ const screenshotId = takeScreenshots
122
+ ? `${constants_1.AXE_WATCHER_SCREENSHOT_PREFIX}${crypto.randomUUID()}`
123
+ : undefined;
103
124
  return Promise.race([
104
125
  new Promise(resolve => {
105
126
  const results = [];
@@ -115,7 +136,8 @@ function axeWatcherFlushCommand({ timeout } = {}) {
115
136
  detail: {
116
137
  isStopped,
117
138
  axeCoreSettings: Cypress.env(cypressAxeCoreSettingsFlag),
118
- runOptions: Cypress.env(cypressRunOptionsFlag)
139
+ runOptions: Cypress.env(cypressRunOptionsFlag),
140
+ screenshot_id: screenshotId
119
141
  }
120
142
  });
121
143
  win.dispatchEvent(event);
@@ -126,7 +148,19 @@ function axeWatcherFlushCommand({ timeout } = {}) {
126
148
  }, timeout || Cypress.env(configTimeout).flush);
127
149
  })
128
150
  ])
129
- .then(results => {
151
+ .then((results) => {
152
+ if (takeScreenshots && screenshotId) {
153
+ for (const result of results) {
154
+ const hasViolations = (result.results?.violations?.length ?? 0) > 0;
155
+ if (!hasViolations || !result.screenshot_id) {
156
+ continue;
157
+ }
158
+ if (result.screenshot_id === screenshotId) {
159
+ captureScreenshotSafe(screenshotId);
160
+ break;
161
+ }
162
+ }
163
+ }
130
164
  cy.task('__uploadAxeWatcherResults', { results }, { log: false }).then(result => {
131
165
  const resultWithFailureStatus = result;
132
166
  const message = resultWithFailureStatus?.failureStatus
@@ -176,17 +210,25 @@ function axeWatcherAnalyzeCommand(subject, { __Method, __UserRequestedAnalyze =
176
210
  }
177
211
  let timer = null;
178
212
  let fn;
213
+ const screenshotId = takeScreenshots
214
+ ? `${constants_1.AXE_WATCHER_SCREENSHOT_PREFIX}${crypto.randomUUID()}`
215
+ : undefined;
179
216
  return (Promise.race([
180
217
  new Promise(resolve => {
181
218
  fn = (event) => {
182
- resolve({ message: event.detail.message, subject });
219
+ resolve({
220
+ message: event.detail.message,
221
+ hasViolations: event.detail.hasViolations,
222
+ subject
223
+ });
183
224
  };
184
225
  win.addEventListener('axe:manual-mode-analyze-done', fn);
185
226
  const event = new CustomEvent('axe:manual-mode-analyze', {
186
227
  detail: {
187
228
  userRequestedAnalyze,
188
229
  axeCoreSettings: Cypress.env(cypressAxeCoreSettingsFlag),
189
- runOptions: Cypress.env(cypressRunOptionsFlag)
230
+ runOptions: Cypress.env(cypressRunOptionsFlag),
231
+ screenshot_id: screenshotId
190
232
  }
191
233
  });
192
234
  win.dispatchEvent(event);
@@ -199,6 +241,9 @@ function axeWatcherAnalyzeCommand(subject, { __Method, __UserRequestedAnalyze =
199
241
  ])
200
242
  .then(result => {
201
243
  logDebugAxeWatcher({ message: `Analyze: ${result?.message}` });
244
+ if (takeScreenshots && result?.hasViolations && screenshotId) {
245
+ captureScreenshotSafe(screenshotId);
246
+ }
202
247
  if (result?.subject) {
203
248
  return result.subject;
204
249
  }
@@ -279,13 +324,25 @@ function axeWatcherStopCommand(subject, { timeout } = {}) {
279
324
  }
280
325
  let timer = null;
281
326
  let fn;
327
+ const screenshotId = takeScreenshots
328
+ ? `${constants_1.AXE_WATCHER_SCREENSHOT_PREFIX}${crypto.randomUUID()}`
329
+ : undefined;
282
330
  return (Promise.race([
283
331
  new Promise(resolve => {
284
332
  fn = (event) => {
285
- resolve({ message: event.detail.message, subject });
333
+ resolve({
334
+ message: event.detail.message,
335
+ hasViolations: event.detail.hasViolations,
336
+ subject
337
+ });
286
338
  };
287
339
  win.addEventListener('axe:manual-mode-analyze-done', fn);
288
- const event = new CustomEvent('axe:manual-mode-analyze');
340
+ const event = new CustomEvent('axe:manual-mode-analyze', {
341
+ detail: {
342
+ userRequestedAnalyze: false,
343
+ screenshot_id: screenshotId
344
+ }
345
+ });
289
346
  win.dispatchEvent(event);
290
347
  }),
291
348
  new Promise((_, reject) => {
@@ -296,6 +353,9 @@ function axeWatcherStopCommand(subject, { timeout } = {}) {
296
353
  ])
297
354
  .then(result => {
298
355
  logDebugAxeWatcher({ message: `Stop: ${result?.message}` });
356
+ if (takeScreenshots && result?.hasViolations && screenshotId) {
357
+ captureScreenshotSafe(screenshotId);
358
+ }
299
359
  isStopped = true;
300
360
  if (result?.subject) {
301
361
  return result.subject;