@axe-core/watcher 1.8.2-next.f181d0bf → 2.0.0-next.099d5645
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/dist/Controller.js +71 -131
- package/dist/Controller.js.map +1 -1
- package/dist/cypress.js +9 -34
- package/dist/cypress.js.map +1 -1
- package/dist/cypressCommands.d.ts +1 -2
- package/dist/cypressCommands.js +55 -67
- package/dist/cypressCommands.js.map +1 -1
- package/dist/git.js +15 -21
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/playwright.d.ts +4 -2
- package/dist/playwright.js +21 -83
- package/dist/playwright.js.map +1 -1
- package/dist/playwrightTest.d.ts +16 -0
- package/dist/playwrightTest.js +75 -0
- package/dist/playwrightTest.js.map +1 -0
- package/dist/playwrightWrapping.d.ts +2 -8
- package/dist/playwrightWrapping.js +211 -484
- package/dist/playwrightWrapping.js.map +1 -1
- package/dist/puppeteer.d.ts +1 -1
- package/dist/puppeteer.js +17 -92
- package/dist/puppeteer.js.map +1 -1
- package/dist/puppeteerWrapping.d.ts +14 -0
- package/dist/puppeteerWrapping.js +432 -0
- package/dist/puppeteerWrapping.js.map +1 -0
- package/dist/util.d.ts +8 -0
- package/dist/util.js +42 -44
- package/dist/util.js.map +1 -1
- package/dist/validateApiKey.js +6 -7
- package/dist/validateApiKey.js.map +1 -1
- package/dist/wdio.js +45 -134
- package/dist/wdio.js.map +1 -1
- package/dist/webdriver.js +21 -84
- package/dist/webdriver.js.map +1 -1
- package/extension/background.js +1 -1
- package/extension/content.js +1 -1
- package/extension/manifest.json +1 -1
- package/package.json +3 -4
package/dist/Controller.js
CHANGED
|
@@ -8,153 +8,93 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
13
|
};
|
|
41
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const util_1 = require("./util");
|
|
17
|
+
const updateAutoAnalyze = (val) => {
|
|
18
|
+
const fileContents = fs_1.default.readFileSync(util_1.PATH_TO_EXTENSION_VARIABLES, 'utf-8');
|
|
19
|
+
const jsonValue = JSON.parse(fileContents);
|
|
47
20
|
jsonValue.auto_analyze = val;
|
|
48
21
|
fs_1.default.writeFileSync(util_1.PATH_TO_EXTENSION_VARIABLES, JSON.stringify(jsonValue));
|
|
49
22
|
};
|
|
50
|
-
|
|
51
|
-
|
|
23
|
+
class Controller {
|
|
24
|
+
constructor() {
|
|
52
25
|
this.isStopped = false;
|
|
53
26
|
}
|
|
54
|
-
|
|
55
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
window.addEventListener('axe:start-auto-mode-done', fn);
|
|
69
|
-
window.dispatchEvent(event);
|
|
70
|
-
});
|
|
71
|
-
})];
|
|
72
|
-
case 1:
|
|
73
|
-
_a.sent();
|
|
74
|
-
return [2 /*return*/];
|
|
75
|
-
}
|
|
27
|
+
start() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
updateAutoAnalyze(true);
|
|
30
|
+
this.isStopped = false;
|
|
31
|
+
yield this.executeScript(() => {
|
|
32
|
+
return new Promise(resolve => {
|
|
33
|
+
const event = new CustomEvent('axe:start-auto-mode');
|
|
34
|
+
const fn = () => {
|
|
35
|
+
window.removeEventListener('axe:start-auto-mode-done', fn);
|
|
36
|
+
resolve();
|
|
37
|
+
};
|
|
38
|
+
window.addEventListener('axe:start-auto-mode-done', fn);
|
|
39
|
+
window.dispatchEvent(event);
|
|
40
|
+
});
|
|
76
41
|
});
|
|
77
42
|
});
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
window.addEventListener('axe:stop-auto-mode-done', fn);
|
|
94
|
-
window.dispatchEvent(event);
|
|
95
|
-
});
|
|
96
|
-
})];
|
|
97
|
-
case 1:
|
|
98
|
-
_a.sent();
|
|
99
|
-
return [2 /*return*/];
|
|
100
|
-
}
|
|
43
|
+
}
|
|
44
|
+
stop() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
updateAutoAnalyze(false);
|
|
47
|
+
this.isStopped = true;
|
|
48
|
+
yield this.executeScript(() => {
|
|
49
|
+
return new Promise(resolve => {
|
|
50
|
+
const event = new CustomEvent('axe:stop-auto-mode');
|
|
51
|
+
const fn = () => {
|
|
52
|
+
window.removeEventListener('axe:stop-auto-mode-done', fn);
|
|
53
|
+
resolve();
|
|
54
|
+
};
|
|
55
|
+
window.addEventListener('axe:stop-auto-mode-done', fn);
|
|
56
|
+
window.dispatchEvent(event);
|
|
57
|
+
});
|
|
101
58
|
});
|
|
102
59
|
});
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
window.addEventListener('axe:manual-mode-analyze-done', fn);
|
|
124
|
-
window.dispatchEvent(event);
|
|
125
|
-
});
|
|
126
|
-
}, __UserRequestedAnalyze)];
|
|
127
|
-
case 1:
|
|
128
|
-
_d.sent();
|
|
129
|
-
return [2 /*return*/];
|
|
130
|
-
}
|
|
131
|
-
});
|
|
60
|
+
}
|
|
61
|
+
analyze({ __UserRequestedAnalyze = true } = {}) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
// If the user didn't request an analyze, and we're in manual mode, don't do anything.
|
|
64
|
+
if (this.isStopped && !__UserRequestedAnalyze) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
yield this.executeScript(userRequestedAnalyze => {
|
|
68
|
+
return new Promise(resolve => {
|
|
69
|
+
const event = new CustomEvent('axe:manual-mode-analyze', {
|
|
70
|
+
detail: { userRequestedAnalyze }
|
|
71
|
+
});
|
|
72
|
+
const fn = () => {
|
|
73
|
+
window.removeEventListener('axe:manual-mode-analyze-done', fn);
|
|
74
|
+
resolve();
|
|
75
|
+
};
|
|
76
|
+
window.addEventListener('axe:manual-mode-analyze-done', fn);
|
|
77
|
+
window.dispatchEvent(event);
|
|
78
|
+
});
|
|
79
|
+
}, __UserRequestedAnalyze);
|
|
132
80
|
});
|
|
133
|
-
}
|
|
81
|
+
}
|
|
134
82
|
/** Flush all axe-core results by sending them to the server. */
|
|
135
|
-
|
|
136
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
window.dispatchEvent(event);
|
|
148
|
-
});
|
|
149
|
-
})];
|
|
150
|
-
case 1:
|
|
151
|
-
_a.sent();
|
|
152
|
-
return [2 /*return*/];
|
|
153
|
-
}
|
|
83
|
+
flush() {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
yield this.executeScript(() => {
|
|
86
|
+
return new Promise(resolve => {
|
|
87
|
+
const fn = () => {
|
|
88
|
+
window.removeEventListener('axe:flush-end', fn);
|
|
89
|
+
resolve();
|
|
90
|
+
};
|
|
91
|
+
window.addEventListener('axe:flush-end', fn);
|
|
92
|
+
const event = new CustomEvent('axe:flush-start');
|
|
93
|
+
window.dispatchEvent(event);
|
|
94
|
+
});
|
|
154
95
|
});
|
|
155
96
|
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
}());
|
|
97
|
+
}
|
|
98
|
+
}
|
|
159
99
|
exports.default = Controller;
|
|
160
100
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"Controller.js","sourceRoot":"","sources":["../src/Controller.ts"],"names":[],"mappings":"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"}
|
package/dist/cypress.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
3
|
var t = {};
|
|
15
4
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -21,27 +10,18 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
10
|
}
|
|
22
11
|
return t;
|
|
23
12
|
};
|
|
24
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
25
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
26
|
-
if (ar || !(i in from)) {
|
|
27
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
28
|
-
ar[i] = from[i];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
32
|
-
};
|
|
33
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
14
|
exports.cypressConfig = void 0;
|
|
35
|
-
|
|
36
|
-
|
|
15
|
+
const uuid_1 = require("uuid");
|
|
16
|
+
const util_1 = require("./util");
|
|
37
17
|
/**
|
|
38
18
|
* Create a Cypress config that uses the axe Watcher extension.
|
|
39
19
|
*
|
|
40
20
|
* @param config Cypress config to extend
|
|
41
21
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
(0, util_1.writeVariables)(
|
|
22
|
+
const cypressConfig = (config) => {
|
|
23
|
+
const { axe } = config, userConfig = __rest(config, ["axe"]);
|
|
24
|
+
(0, util_1.writeVariables)(Object.assign(Object.assign({}, axe), {
|
|
45
25
|
// Ensure the session ID persists between tabs.
|
|
46
26
|
// We cannot allow the extension to generate an ID, as each tab would get its own.
|
|
47
27
|
sessionId: axe.sessionId || (0, uuid_1.v4)(),
|
|
@@ -56,22 +36,17 @@ var cypressConfig = function (config) {
|
|
|
56
36
|
'*/__cypress/iframes/*'
|
|
57
37
|
]
|
|
58
38
|
});
|
|
59
|
-
return
|
|
39
|
+
return Object.assign(Object.assign({}, userConfig), { e2e: Object.assign(Object.assign({}, userConfig.e2e), { setupNodeEvents(on, ...args) {
|
|
60
40
|
var _a, _b;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
args[_i - 1] = arguments[_i];
|
|
64
|
-
}
|
|
65
|
-
(_b = (_a = userConfig.e2e) === null || _a === void 0 ? void 0 : _a.setupNodeEvents) === null || _b === void 0 ? void 0 : _b.call.apply(_b, __spreadArray([_a, on], args, false));
|
|
66
|
-
on('before:browser:launch', function (browser, launchOptions) {
|
|
67
|
-
var _a;
|
|
41
|
+
(_b = (_a = userConfig.e2e) === null || _a === void 0 ? void 0 : _a.setupNodeEvents) === null || _b === void 0 ? void 0 : _b.call(_a, on, ...args);
|
|
42
|
+
on('before:browser:launch', (browser, launchOptions) => {
|
|
68
43
|
// We only support Chrome.
|
|
69
44
|
if (browser.name === 'chrome') {
|
|
70
45
|
if (browser.isHeadless) {
|
|
71
46
|
throw new util_1.HeadlessNotSupportedError();
|
|
72
47
|
}
|
|
73
48
|
// Load the extension.
|
|
74
|
-
|
|
49
|
+
launchOptions.args.push(...util_1.extensionArgs);
|
|
75
50
|
}
|
|
76
51
|
return launchOptions;
|
|
77
52
|
});
|
package/dist/cypress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,+BAAiC;AACjC,iCAMe;AAEf;;;;GAIG;AAEI,MAAM,aAAa,GAAG,CAC3B,MAA6C,EACtB,EAAE;IACzB,MAAM,EAAE,GAAG,KAAoB,MAAM,EAArB,UAAU,UAAK,MAAM,EAA/B,OAAsB,CAAS,CAAA;IAErC,IAAA,qBAAc,kCACT,GAAG;QACN,+CAA+C;QAC/C,kFAAkF;QAClF,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAA,SAAI,GAAE;QAClC,sDAAsD;QACtD,OAAO,EAAE,IAAI,IACb,CAAA;IACF,IAAA,oBAAa,EAAC;QACZ,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE;YACb,0BAA0B;YAC1B,4BAA4B;YAC5B,4BAA4B;YAC5B,uBAAuB;SACxB;KACF,CAAC,CAAA;IAEF,uCACK,UAAU,KACb,GAAG,kCACE,UAAU,CAAC,GAAG,KACjB,eAAe,CAAC,EAAE,EAAE,GAAG,IAAI;;gBACzB,MAAA,MAAA,UAAU,CAAC,GAAG,0CAAE,eAAe,mDAAG,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;gBAE9C,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE;oBACrD,0BAA0B;oBAC1B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC7B,IAAI,OAAO,CAAC,UAAU,EAAE;4BACtB,MAAM,IAAI,gCAAyB,EAAE,CAAA;yBACtC;wBAED,sBAAsB;wBACtB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,oBAAa,CAAC,CAAA;qBAC1C;oBAED,OAAO,aAAa,CAAA;gBACtB,CAAC,CAAC,CAAA;YACJ,CAAC,OAEJ;AACH,CAAC,CAAA;AA9CY,QAAA,aAAa,iBA8CzB"}
|
package/dist/cypressCommands.js
CHANGED
|
@@ -10,41 +10,40 @@ exports.WRAPPED_COMMANDS = void 0;
|
|
|
10
10
|
* As result, we need this top-level state for managing
|
|
11
11
|
* analyze calls created by "wrapped" methods.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
Cypress.Commands.add('axeFlush',
|
|
15
|
-
cy.window().then(
|
|
13
|
+
let isStopped = false;
|
|
14
|
+
Cypress.Commands.add('axeFlush', () => {
|
|
15
|
+
cy.window().then(win => {
|
|
16
16
|
// @ts-expect-error `__AXE_WATCHER_HAS_VISITED` is a global set on the window by axe Watcher.
|
|
17
17
|
// This determines if axe Watcher has ever visited the page. If it hasn't, we don't want to
|
|
18
18
|
// flush results
|
|
19
19
|
if (!win.__AXE_WATCHER_HAS_VISITED) {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
return new Promise(
|
|
23
|
-
|
|
22
|
+
return new Promise(resolve => {
|
|
23
|
+
const fn = () => {
|
|
24
24
|
win.removeEventListener('axe:flush-end', fn);
|
|
25
25
|
// @ts-expect-error reset `__AXE_WATCHER_HAS_VISITED` to false
|
|
26
26
|
win.__AXE_WATCHER_HAS_VISITED = false;
|
|
27
27
|
resolve();
|
|
28
28
|
};
|
|
29
29
|
win.addEventListener('axe:flush-end', fn);
|
|
30
|
-
|
|
30
|
+
const event = new CustomEvent('axe:flush-start');
|
|
31
31
|
win.dispatchEvent(event);
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
Cypress.Commands.add('axeAnalyze',
|
|
36
36
|
// __UserRequestedAnalyze allows us to differentiate between user-initiated and automatic analysis.
|
|
37
|
-
|
|
38
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.__UserRequestedAnalyze, __UserRequestedAnalyze = _c === void 0 ? true : _c;
|
|
37
|
+
({ __UserRequestedAnalyze = true } = {}) => {
|
|
39
38
|
if (!__UserRequestedAnalyze && isStopped) {
|
|
40
39
|
return;
|
|
41
40
|
}
|
|
42
|
-
cy.window().then(
|
|
43
|
-
return new Promise(
|
|
44
|
-
|
|
41
|
+
cy.window().then(win => {
|
|
42
|
+
return new Promise(resolve => {
|
|
43
|
+
const event = new CustomEvent('axe:manual-mode-analyze', {
|
|
45
44
|
detail: { userRequestedAnalyze: __UserRequestedAnalyze }
|
|
46
45
|
});
|
|
47
|
-
|
|
46
|
+
const fn = () => {
|
|
48
47
|
win.removeEventListener('axe:manual-mode-analyze-done', fn);
|
|
49
48
|
resolve();
|
|
50
49
|
};
|
|
@@ -53,11 +52,11 @@ function (_a) {
|
|
|
53
52
|
});
|
|
54
53
|
});
|
|
55
54
|
});
|
|
56
|
-
Cypress.Commands.add('axeStart',
|
|
57
|
-
cy.window().then(
|
|
58
|
-
return new Promise(
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
Cypress.Commands.add('axeStart', () => {
|
|
56
|
+
cy.window().then(win => {
|
|
57
|
+
return new Promise(resolve => {
|
|
58
|
+
const event = new CustomEvent('axe:start-auto-mode');
|
|
59
|
+
const fn = () => {
|
|
61
60
|
isStopped = false;
|
|
62
61
|
win.removeEventListener('axe:start-auto-mode-done', fn);
|
|
63
62
|
resolve();
|
|
@@ -67,11 +66,11 @@ Cypress.Commands.add('axeStart', function () {
|
|
|
67
66
|
});
|
|
68
67
|
});
|
|
69
68
|
});
|
|
70
|
-
Cypress.Commands.add('axeStop',
|
|
71
|
-
cy.window().then(
|
|
72
|
-
return new Promise(
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
Cypress.Commands.add('axeStop', () => {
|
|
70
|
+
cy.window().then(win => {
|
|
71
|
+
return new Promise(resolve => {
|
|
72
|
+
const event = new CustomEvent('axe:stop-auto-mode');
|
|
73
|
+
const fn = () => {
|
|
75
74
|
isStopped = true;
|
|
76
75
|
win.removeEventListener('axe:stop-auto-mode-done', fn);
|
|
77
76
|
resolve();
|
|
@@ -108,40 +107,33 @@ exports.WRAPPED_COMMANDS = [
|
|
|
108
107
|
* We rely on future commands to detect any new page state created by the current command.
|
|
109
108
|
* The last command that runs relies on the flush to catch the last page state.
|
|
110
109
|
*/
|
|
111
|
-
exports.WRAPPED_COMMANDS.forEach(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
110
|
+
exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (originalFn, ...args) => {
|
|
111
|
+
var _a, _b, _c;
|
|
112
|
+
const currentCommand = (_b = (_a = cy.state('current')) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b.name;
|
|
113
|
+
// Some commands, like "type" call other commands internally, like "click".
|
|
114
|
+
// We don't want to enqueue a run in these scenarios because it can cause
|
|
115
|
+
// promises to be returned from commands, which Cypress does not allow.
|
|
116
|
+
// See: https://github.com/cypress-io/cypress/issues/19086
|
|
117
|
+
if (currentCommand && currentCommand !== method) {
|
|
118
|
+
return originalFn(...args);
|
|
119
|
+
}
|
|
120
|
+
// Get the previous subject from the chain so we can pass it along to child commands.
|
|
121
|
+
const subject = (_c = cy.subject) === null || _c === void 0 ? void 0 : _c.call(cy);
|
|
122
|
+
cy.window()
|
|
123
|
+
.then((win) => {
|
|
124
|
+
if (win && !win.__AXE_WATCHER_HAS_VISITED) {
|
|
125
|
+
/**
|
|
126
|
+
* Set a flag on the Window to indicate that a wrapped method has been called.
|
|
127
|
+
* This is used to determine whether we should call `axeFlush` after the test.
|
|
128
|
+
*/
|
|
129
|
+
win.__AXE_WATCHER_HAS_VISITED = true;
|
|
125
130
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Set a flag on the Window to indicate that a wrapped method has been called.
|
|
134
|
-
* This is used to determine whether we should call `axeFlush` after the test.
|
|
135
|
-
*/
|
|
136
|
-
win.__AXE_WATCHER_HAS_VISITED = true;
|
|
137
|
-
}
|
|
138
|
-
})
|
|
139
|
-
.axeAnalyze({ __UserRequestedAnalyze: false })
|
|
140
|
-
// Set the subject back to the previous subject
|
|
141
|
-
.then(function () { return subject; })
|
|
142
|
-
.then(function () { return originalFn.apply(void 0, args); });
|
|
143
|
-
});
|
|
144
|
-
});
|
|
131
|
+
})
|
|
132
|
+
.axeAnalyze({ __UserRequestedAnalyze: false })
|
|
133
|
+
// Set the subject back to the previous subject
|
|
134
|
+
.then(() => subject)
|
|
135
|
+
.then(() => originalFn(...args));
|
|
136
|
+
}));
|
|
145
137
|
/**
|
|
146
138
|
* The `visit` command is wrapped differently than the other commands. This is because
|
|
147
139
|
* we need to actually visit and load the page before we can run axe.
|
|
@@ -149,19 +141,15 @@ exports.WRAPPED_COMMANDS.forEach(function (method) {
|
|
|
149
141
|
* We run the original visit command, wait for the extension to be initialized, and then
|
|
150
142
|
* queue an axe run.
|
|
151
143
|
*/
|
|
152
|
-
Cypress.Commands.overwrite('visit',
|
|
153
|
-
var args = [];
|
|
154
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
155
|
-
args[_i - 1] = arguments[_i];
|
|
156
|
-
}
|
|
144
|
+
Cypress.Commands.overwrite('visit', (originalFn, ...args) => {
|
|
157
145
|
// We use `cy.wrap(null)` here just to get into the Cypress command queue.
|
|
158
146
|
cy.wrap(null)
|
|
159
|
-
.then(
|
|
160
|
-
return originalFn
|
|
147
|
+
.then(() => {
|
|
148
|
+
return originalFn(...args);
|
|
161
149
|
})
|
|
162
|
-
.then(
|
|
150
|
+
.then(visitResult => {
|
|
163
151
|
cy.window()
|
|
164
|
-
.then(
|
|
152
|
+
.then((win) => {
|
|
165
153
|
if (win && !win.__AXE_WATCHER_HAS_VISITED) {
|
|
166
154
|
/**
|
|
167
155
|
* Set a flag on the Window to indicate that a wrapped method has been called.
|
|
@@ -170,8 +158,8 @@ Cypress.Commands.overwrite('visit', function (originalFn) {
|
|
|
170
158
|
win.__AXE_WATCHER_HAS_VISITED = true;
|
|
171
159
|
}
|
|
172
160
|
// Wait for watcher to initialize before continuing.
|
|
173
|
-
return new Promise(
|
|
174
|
-
|
|
161
|
+
return new Promise(resolve => {
|
|
162
|
+
const fn = () => {
|
|
175
163
|
win.removeEventListener('axe:initialized', fn);
|
|
176
164
|
resolve();
|
|
177
165
|
};
|
|
@@ -179,7 +167,7 @@ Cypress.Commands.overwrite('visit', function (originalFn) {
|
|
|
179
167
|
});
|
|
180
168
|
})
|
|
181
169
|
.axeAnalyze({ __UserRequestedAnalyze: false })
|
|
182
|
-
.then(
|
|
170
|
+
.then(() => visitResult);
|
|
183
171
|
});
|
|
184
172
|
});
|
|
185
173
|
//# sourceMappingURL=cypressCommands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":";AAAA,kJAAkJ;;;
|
|
1
|
+
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":"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"}
|