@axe-core/watcher 4.2.0 → 4.3.0-rc.f84e1296

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 (69) hide show
  1. package/EXTENSION-LICENSES-3RD-PARTY.md +2 -2
  2. package/dist/Controller.d.ts +23 -0
  3. package/dist/Controller.js +98 -10
  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 +3 -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/testContext.d.ts +37 -0
  27. package/dist/utils/testContext.js +57 -0
  28. package/dist/utils/testContext.js.map +1 -0
  29. package/dist/utils/writeVariables.d.ts +4 -3
  30. package/dist/utils/writeVariables.js +7 -3
  31. package/dist/utils/writeVariables.js.map +1 -1
  32. package/dist/wdio/wdio.d.ts +1 -0
  33. package/dist/wdio/wdio.js +3 -0
  34. package/dist/wdio/wdio.js.map +1 -1
  35. package/dist/webdriver/webdriver.d.ts +1 -0
  36. package/dist/webdriver/webdriver.js +3 -0
  37. package/dist/webdriver/webdriver.js.map +1 -1
  38. package/extension/axe-versions/axe-core@4.11.4/axe.min.js +12 -0
  39. package/extension/axe-versions/axe-core@4.11.4/locales/README.md +9 -0
  40. package/extension/axe-versions/axe-core@4.11.4/locales/_template.json +1142 -0
  41. package/extension/axe-versions/axe-core@4.11.4/locales/da.json +799 -0
  42. package/extension/axe-versions/axe-core@4.11.4/locales/de.json +1127 -0
  43. package/extension/axe-versions/axe-core@4.11.4/locales/el.json +1069 -0
  44. package/extension/axe-versions/axe-core@4.11.4/locales/es.json +790 -0
  45. package/extension/axe-versions/axe-core@4.11.4/locales/eu.json +789 -0
  46. package/extension/axe-versions/axe-core@4.11.4/locales/fr.json +994 -0
  47. package/extension/axe-versions/axe-core@4.11.4/locales/he.json +1017 -0
  48. package/extension/axe-versions/axe-core@4.11.4/locales/it.json +1108 -0
  49. package/extension/axe-versions/axe-core@4.11.4/locales/ja.json +1127 -0
  50. package/extension/axe-versions/axe-core@4.11.4/locales/ko.json +1003 -0
  51. package/extension/axe-versions/axe-core@4.11.4/locales/nl.json +48 -0
  52. package/extension/axe-versions/axe-core@4.11.4/locales/no_NB.json +799 -0
  53. package/extension/axe-versions/axe-core@4.11.4/locales/pl.json +1109 -0
  54. package/extension/axe-versions/axe-core@4.11.4/locales/pt_BR.json +970 -0
  55. package/extension/axe-versions/axe-core@4.11.4/locales/pt_PT.json +1123 -0
  56. package/extension/axe-versions/axe-core@4.11.4/locales/ru.json +1127 -0
  57. package/extension/axe-versions/axe-core@4.11.4/locales/zh_CN.json +1116 -0
  58. package/extension/axe-versions/axe-core@4.11.4/locales/zh_TW.json +1108 -0
  59. package/extension/axe-versions-mapper.js +2 -1
  60. package/extension/axe.js +1 -1
  61. package/extension/axe.js.LICENSE.txt +1 -1
  62. package/extension/content.js +1 -1
  63. package/extension/manifest.json +1 -4
  64. package/package.json +5 -6
  65. package/dist/utils/createAbortController.d.ts +0 -11
  66. package/dist/utils/createAbortController.js +0 -14
  67. package/dist/utils/createAbortController.js.map +0 -1
  68. package/extension/background.js +0 -1
  69. 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
 
@@ -1,6 +1,7 @@
1
1
  import type { Debugger } from 'debug';
2
2
  import { type Variables } from './utils/writeVariables';
3
3
  import { type AxeCoreSettings } from './utils/initializeSession';
4
+ import { type TestContext } from './utils/testContext';
4
5
  interface ControllerParams {
5
6
  /** The namespace for the debug logger. */
6
7
  debugLoggerName: string;
@@ -13,13 +14,35 @@ interface ControllerActionOptions {
13
14
  timeout?: number;
14
15
  }
15
16
  declare abstract class Controller {
17
+ #private;
16
18
  protected abstract executeScript<A = unknown, T = void>(fn: string | ((...args: A[]) => Promise<T>), ...args: unknown[]): Promise<T>;
19
+ /**
20
+ * Capture a screenshot using the test framework's native API.
21
+ * Subclasses override this to provide framework-specific implementations.
22
+ * Returns a base64-encoded PNG string.
23
+ */
24
+ abstract captureScreenshot(): Promise<string>;
17
25
  protected isStopped: boolean;
18
26
  protected debugLogger: Debugger;
19
27
  protected timeout: Variables['timeout'];
20
28
  protected axeCoreSettings?: AxeCoreSettings;
21
29
  protected runOptions?: Variables['run_options'];
30
+ /**
31
+ * Per-instance test attribution. Set by framework-aware adapters
32
+ * (Playwright Test, WDIO runner) via `setTestContext()`. Vanilla
33
+ * Playwright / WDIO users don't set this — they populate the global
34
+ * sink instead, and `analyze`/`flush`/`stop` fall back to
35
+ * `this.testContext ?? getGlobalTestContext()`.
36
+ */
37
+ protected testContext: TestContext | null;
22
38
  constructor({ debugLoggerName, integrationName, configurationFunction }: ControllerParams);
39
+ /**
40
+ * Set or clear per-instance test attribution. Called by framework-aware
41
+ * adapters (Playwright Test, WDIO runner) at each test's start/end.
42
+ * Routes through `normalizeTestContext()` so input matches the global
43
+ * sink path. Pass `null` to clear.
44
+ */
45
+ setTestContext(context: TestContext | null): void;
23
46
  start({ timeout }?: ControllerActionOptions): Promise<void>;
24
47
  stop({ timeout }?: ControllerActionOptions): Promise<void>;
25
48
  analyze({ __Method, __UserRequestedAnalyze }?: {
@@ -1,15 +1,31 @@
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"));
8
20
  const createDebugger_1 = __importDefault(require("./createDebugger"));
9
21
  const assertVariablesWereWritten_1 = require("./utils/assertVariablesWereWritten");
10
22
  const constants_1 = require("./utils/constants");
23
+ const testContext_1 = require("./utils/testContext");
11
24
  class Controller {
12
25
  constructor({ debugLoggerName, integrationName, configurationFunction }) {
26
+ this.testContext = null;
27
+ _Controller_takeScreenshots.set(this, false);
28
+ _Controller_screenshots.set(this, {});
13
29
  (0, assertVariablesWereWritten_1.assertVariablesWereWritten)(integrationName, configurationFunction);
14
30
  const variables = (0, readVariables_1.default)();
15
31
  this.axeCoreSettings = variables.axe_core_settings;
@@ -17,6 +33,10 @@ class Controller {
17
33
  this.isStopped = !variables?.auto_analyze;
18
34
  this.timeout = variables.timeout;
19
35
  this.debugLogger = (0, createDebugger_1.default)(debugLoggerName);
36
+ __classPrivateFieldSet(this, _Controller_takeScreenshots, !!variables.take_screenshots, "f");
37
+ }
38
+ setTestContext(context) {
39
+ this.testContext = (0, testContext_1.normalizeTestContext)(context);
20
40
  }
21
41
  async start({ timeout } = {}) {
22
42
  this.debugLogger(`Start: Invoked`);
@@ -63,8 +83,9 @@ class Controller {
63
83
  return Promise.resolve();
64
84
  }
65
85
  let timer = null;
86
+ const screenshotId = __classPrivateFieldGet(this, _Controller_takeScreenshots, "f") ? crypto.randomUUID() : undefined;
66
87
  await Promise.race([
67
- this.executeScript(() => {
88
+ this.executeScript(({ testContext, screenshot_id }) => {
68
89
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
69
90
  return Promise.resolve({ message: 'Skipped - Invalid protocol' });
70
91
  }
@@ -80,10 +101,17 @@ class Controller {
80
101
  };
81
102
  window.addEventListener('axe:manual-mode-analyze-done', fn);
82
103
  const event = new CustomEvent('axe:manual-mode-analyze', {
83
- detail: { userRequestedAnalyze: false }
104
+ detail: {
105
+ userRequestedAnalyze: false,
106
+ testContext,
107
+ screenshot_id
108
+ }
84
109
  });
85
110
  window.dispatchEvent(event);
86
111
  });
112
+ }, {
113
+ testContext: this.testContext ?? (0, testContext_1.getGlobalTestContext)(),
114
+ screenshot_id: screenshotId
87
115
  }),
88
116
  new Promise((_, reject) => {
89
117
  timer = setTimeout(() => {
@@ -91,8 +119,18 @@ class Controller {
91
119
  }, timeout || this.timeout.stop);
92
120
  })
93
121
  ])
94
- .then(result => {
122
+ .then(async (result) => {
95
123
  this.debugLogger(`Stop: ${result.message}`);
124
+ if (__classPrivateFieldGet(this, _Controller_takeScreenshots, "f") && result.hasViolations && screenshotId) {
125
+ this.debugLogger('Stop: Capturing screenshot');
126
+ try {
127
+ __classPrivateFieldGet(this, _Controller_screenshots, "f")[screenshotId] = await this.captureScreenshot();
128
+ this.debugLogger('Stop: Screenshot captured');
129
+ }
130
+ catch (error) {
131
+ this.debugLogger('Stop: Screenshot capture failed', { error });
132
+ }
133
+ }
96
134
  })
97
135
  .finally(() => {
98
136
  if (timer) {
@@ -114,8 +152,9 @@ class Controller {
114
152
  return;
115
153
  }
116
154
  let timer = null;
155
+ const screenshotId = __classPrivateFieldGet(this, _Controller_takeScreenshots, "f") ? crypto.randomUUID() : undefined;
117
156
  await Promise.race([
118
- this.executeScript(({ userRequestedAnalyze, isStopped, axeCoreSettings, runOptions }) => {
157
+ this.executeScript(({ userRequestedAnalyze, isStopped, axeCoreSettings, runOptions, testContext, screenshot_id }) => {
119
158
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
120
159
  if (userRequestedAnalyze) {
121
160
  return Promise.resolve({
@@ -141,7 +180,9 @@ class Controller {
141
180
  userRequestedAnalyze,
142
181
  isStopped,
143
182
  axeCoreSettings,
144
- runOptions
183
+ runOptions,
184
+ testContext,
185
+ screenshot_id
145
186
  }
146
187
  });
147
188
  window.dispatchEvent(event);
@@ -150,7 +191,9 @@ class Controller {
150
191
  userRequestedAnalyze: __UserRequestedAnalyze,
151
192
  isStopped: this.isStopped,
152
193
  axeCoreSettings: this.axeCoreSettings,
153
- runOptions: this.runOptions
194
+ runOptions: this.runOptions,
195
+ testContext: this.testContext ?? (0, testContext_1.getGlobalTestContext)(),
196
+ screenshot_id: screenshotId
154
197
  }),
155
198
  new Promise((_, reject) => {
156
199
  timer = setTimeout(() => {
@@ -158,11 +201,21 @@ class Controller {
158
201
  }, timeout || this.timeout.analyze);
159
202
  })
160
203
  ])
161
- .then(result => {
204
+ .then(async (result) => {
162
205
  this.debugLogger(`Analyze: ${result.message}`);
163
206
  if (result.error) {
164
207
  throw new Error(result.message);
165
208
  }
209
+ if (__classPrivateFieldGet(this, _Controller_takeScreenshots, "f") && result.hasViolations && screenshotId) {
210
+ this.debugLogger('Analyze: Capturing screenshot');
211
+ try {
212
+ __classPrivateFieldGet(this, _Controller_screenshots, "f")[screenshotId] = await this.captureScreenshot();
213
+ this.debugLogger('Analyze: Screenshot captured');
214
+ }
215
+ catch (error) {
216
+ this.debugLogger('Analyze: Screenshot capture failed', { error });
217
+ }
218
+ }
166
219
  })
167
220
  .finally(() => {
168
221
  if (timer) {
@@ -173,8 +226,9 @@ class Controller {
173
226
  async flush({ timeout } = {}) {
174
227
  this.debugLogger(`Flush: Invoked (${this.isStopped ? 'auto-analysis stopped' : 'may analyze implicitly'})`);
175
228
  let timer = null;
229
+ const screenshotId = __classPrivateFieldGet(this, _Controller_takeScreenshots, "f") ? crypto.randomUUID() : undefined;
176
230
  await Promise.race([
177
- this.executeScript(({ isStopped, axeCoreSettings, runOptions }) => {
231
+ this.executeScript(({ isStopped, axeCoreSettings, runOptions, testContext, screenshot_id }) => {
178
232
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
179
233
  return Promise.resolve([]);
180
234
  }
@@ -197,7 +251,9 @@ class Controller {
197
251
  detail: {
198
252
  isStopped,
199
253
  axeCoreSettings,
200
- runOptions
254
+ runOptions,
255
+ testContext,
256
+ screenshot_id
201
257
  }
202
258
  });
203
259
  window.dispatchEvent(event);
@@ -205,7 +261,9 @@ class Controller {
205
261
  }, {
206
262
  isStopped: this.isStopped,
207
263
  axeCoreSettings: this.axeCoreSettings,
208
- runOptions: this.runOptions
264
+ runOptions: this.runOptions,
265
+ testContext: this.testContext ?? (0, testContext_1.getGlobalTestContext)(),
266
+ screenshot_id: screenshotId
209
267
  }),
210
268
  new Promise((_, reject) => {
211
269
  timer = setTimeout(() => {
@@ -215,6 +273,35 @@ class Controller {
215
273
  ])
216
274
  .then(async (results) => {
217
275
  this.debugLogger(`Flush: Received ${results.length} results`);
276
+ if (__classPrivateFieldGet(this, _Controller_takeScreenshots, "f")) {
277
+ for (const result of results) {
278
+ const hasViolations = (result.results?.violations?.length ?? 0) > 0;
279
+ if (!hasViolations) {
280
+ continue;
281
+ }
282
+ if (result.screenshot_id &&
283
+ result.screenshot_id in __classPrivateFieldGet(this, _Controller_screenshots, "f")) {
284
+ result.screenshot = __classPrivateFieldGet(this, _Controller_screenshots, "f")[result.screenshot_id];
285
+ }
286
+ else if (result.screenshot_id === screenshotId) {
287
+ this.debugLogger('Flush: Capturing screenshot');
288
+ try {
289
+ result.screenshot = await this.captureScreenshot();
290
+ this.debugLogger('Flush: Screenshot captured');
291
+ }
292
+ catch (error) {
293
+ this.debugLogger('Flush: Screenshot capture failed', {
294
+ error
295
+ });
296
+ result.screenshot_id = null;
297
+ }
298
+ }
299
+ else {
300
+ result.screenshot_id = null;
301
+ }
302
+ }
303
+ __classPrivateFieldSet(this, _Controller_screenshots, {}, "f");
304
+ }
218
305
  await (0, sendResultsToServer_1.default)({
219
306
  results,
220
307
  debugLogger: this.debugLogger
@@ -228,5 +315,6 @@ class Controller {
228
315
  });
229
316
  }
230
317
  }
318
+ _Controller_takeScreenshots = new WeakMap(), _Controller_screenshots = new WeakMap();
231
319
  exports.default = Controller;
232
320
  //# 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":"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"}
@@ -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":"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"}
@@ -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;