@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.
- package/EXTENSION-LICENSES-3RD-PARTY.md +2 -2
- package/dist/Controller.d.ts +7 -0
- package/dist/Controller.js +83 -11
- package/dist/Controller.js.map +1 -1
- package/dist/cypress/cypress.d.ts +2 -1
- package/dist/cypress/cypress.js +74 -4
- package/dist/cypress/cypress.js.map +1 -1
- package/dist/cypressCommands.js +66 -6
- package/dist/cypressCommands.js.map +1 -1
- package/dist/playwright/playwright.d.ts +1 -0
- package/dist/playwright/playwright.js +4 -0
- package/dist/playwright/playwright.js.map +1 -1
- package/dist/puppeteer/puppeteer.d.ts +1 -0
- package/dist/puppeteer/puppeteer.js +3 -0
- package/dist/puppeteer/puppeteer.js.map +1 -1
- package/dist/sendResultsToServer.d.ts +1 -0
- package/dist/sendResultsToServer.js +11 -50
- package/dist/sendResultsToServer.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +2 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/saveScreenshotsLocally.d.ts +2 -0
- package/dist/utils/saveScreenshotsLocally.js +38 -0
- package/dist/utils/saveScreenshotsLocally.js.map +1 -0
- package/dist/utils/sync-fetch-worker.mjs +1 -1
- package/dist/utils/writeVariables.d.ts +4 -3
- package/dist/utils/writeVariables.js +7 -3
- package/dist/utils/writeVariables.js.map +1 -1
- package/dist/wdio/wdio.d.ts +1 -0
- package/dist/wdio/wdio.js +3 -0
- package/dist/wdio/wdio.js.map +1 -1
- package/dist/webdriver/webdriver.d.ts +1 -0
- package/dist/webdriver/webdriver.js +3 -0
- package/dist/webdriver/webdriver.js.map +1 -1
- package/extension/axe-versions/axe-core@4.11.3/axe.min.js +12 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/README.md +9 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/_template.json +1142 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/da.json +799 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/de.json +1127 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/el.json +1069 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/es.json +790 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/eu.json +789 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/fr.json +994 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/he.json +1017 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/it.json +1108 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/ja.json +1127 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/ko.json +1003 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/nl.json +48 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/no_NB.json +799 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/pl.json +1109 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/pt_BR.json +970 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/pt_PT.json +1123 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/ru.json +1127 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/zh_CN.json +1116 -0
- package/extension/axe-versions/axe-core@4.11.3/locales/zh_TW.json +1108 -0
- package/extension/axe-versions/axe-core@4.11.4/axe.min.js +12 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/README.md +9 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/_template.json +1142 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/da.json +799 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/de.json +1127 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/el.json +1069 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/es.json +790 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/eu.json +789 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/fr.json +994 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/he.json +1017 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/it.json +1108 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/ja.json +1127 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/ko.json +1003 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/nl.json +48 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/no_NB.json +799 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/pl.json +1109 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/pt_BR.json +970 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/pt_PT.json +1123 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/ru.json +1127 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/zh_CN.json +1116 -0
- package/extension/axe-versions/axe-core@4.11.4/locales/zh_TW.json +1108 -0
- package/extension/axe-versions-mapper.js +3 -1
- package/extension/axe.js +1 -1
- package/extension/axe.js.LICENSE.txt +1 -1
- package/extension/content.js +1 -1
- package/extension/manifest.json +1 -4
- package/package.json +4 -5
- package/dist/utils/createAbortController.d.ts +0 -11
- package/dist/utils/createAbortController.js +0 -14
- package/dist/utils/createAbortController.js.map +0 -1
- package/extension/background.js +0 -1
- 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.
|
|
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.
|
|
613
|
+
**Version**: 10.2.5
|
|
614
614
|
|
|
615
615
|
**License**: BlueOak-1.0.0
|
|
616
616
|
|
package/dist/Controller.d.ts
CHANGED
|
@@ -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'];
|
package/dist/Controller.js
CHANGED
|
@@ -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
|
package/dist/Controller.js.map
CHANGED
|
@@ -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[];
|
package/dist/cypress/cypress.js
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress/cypress.ts"],"names":[],"mappings":"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"}
|
package/dist/cypressCommands.js
CHANGED
|
@@ -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({
|
|
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({
|
|
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;
|