@axe-core/watcher 3.11.1-next.f559e570 → 3.11.1-rc.100a71b1
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.d.ts +1 -9
- package/dist/Controller.js +7 -21
- package/dist/Controller.js.map +1 -1
- package/dist/cypress.js +2 -19
- package/dist/cypress.js.map +1 -1
- package/dist/cypressCommands.d.ts +1 -3
- package/dist/cypressCommands.js +39 -78
- package/dist/cypressCommands.js.map +1 -1
- package/dist/playwright.js +1 -1
- package/dist/playwright.js.map +1 -1
- package/dist/playwrightTest.js +1 -1
- package/dist/playwrightTest.js.map +1 -1
- package/dist/puppeteer.js +1 -1
- package/dist/puppeteer.js.map +1 -1
- package/dist/puppeteerWrapping.d.ts +2 -3
- package/dist/puppeteerWrapping.js +1 -59
- package/dist/puppeteerWrapping.js.map +1 -1
- package/dist/sendResultsToServer.d.ts +2 -9
- package/dist/sendResultsToServer.js +3 -25
- package/dist/sendResultsToServer.js.map +1 -1
- package/dist/util.d.ts +2 -22
- package/dist/util.js +3 -12
- package/dist/util.js.map +1 -1
- package/dist/wdio.js +1 -1
- package/dist/wdio.js.map +1 -1
- package/dist/webdriver.js +2 -2
- package/dist/webdriver.js.map +1 -1
- package/extension/background.js +1 -1
- package/extension/content.js +1 -1
- package/package.json +2 -5
- package/dist/createDebugger.d.ts +0 -9
- package/dist/createDebugger.js +0 -27
- package/dist/createDebugger.js.map +0 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/validateAxeRunContext.d.ts +0 -2
- package/dist/utils/validateAxeRunContext.js +0 -60
- package/dist/utils/validateAxeRunContext.js.map +0 -1
- package/dist/utils/validateAxeRunContext.test.d.ts +0 -2
- package/dist/utils/validateAxeRunContext.test.js +0 -100
- package/dist/utils/validateAxeRunContext.test.js.map +0 -1
- package/dist/utils/validateAxeRunOptions.d.ts +0 -13
- package/dist/utils/validateAxeRunOptions.js +0 -162
- package/dist/utils/validateAxeRunOptions.js.map +0 -1
- package/dist/utils/validateAxeRunOptions.test.d.ts +0 -2
- package/dist/utils/validateAxeRunOptions.test.js +0 -230
- package/dist/utils/validateAxeRunOptions.test.js.map +0 -1
package/dist/Controller.d.ts
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import type { Debugger } from 'debug';
|
|
2
|
-
interface ControllerParams {
|
|
3
|
-
/** The namespace for the debug logger. */
|
|
4
|
-
debugLoggerName: string;
|
|
5
|
-
}
|
|
6
1
|
declare abstract class Controller {
|
|
7
2
|
protected abstract executeScript<A = unknown, T = void>(fn: string | ((...args: A[]) => Promise<T>), ...args: unknown[]): Promise<T>;
|
|
8
3
|
protected isStopped: boolean;
|
|
9
|
-
protected debugLogger: Debugger;
|
|
10
|
-
constructor({ debugLoggerName }: ControllerParams);
|
|
11
4
|
start(): Promise<void>;
|
|
12
5
|
stop(): Promise<void>;
|
|
13
|
-
analyze({
|
|
14
|
-
__Method?: string;
|
|
6
|
+
analyze({ __UserRequestedAnalyze }?: {
|
|
15
7
|
__UserRequestedAnalyze?: boolean;
|
|
16
8
|
}): Promise<void>;
|
|
17
9
|
flush(): Promise<void>;
|
package/dist/Controller.js
CHANGED
|
@@ -5,11 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const util_1 = require("./util");
|
|
7
7
|
const sendResultsToServer_1 = __importDefault(require("./sendResultsToServer"));
|
|
8
|
-
const createDebugger_1 = __importDefault(require("./createDebugger"));
|
|
9
8
|
class Controller {
|
|
10
|
-
constructor(
|
|
9
|
+
constructor() {
|
|
11
10
|
this.isStopped = false;
|
|
12
|
-
this.debugLogger = (0, createDebugger_1.default)(debugLoggerName);
|
|
13
11
|
}
|
|
14
12
|
async start() {
|
|
15
13
|
(0, util_1.updateAutoAnalyze)(true);
|
|
@@ -47,24 +45,19 @@ class Controller {
|
|
|
47
45
|
});
|
|
48
46
|
});
|
|
49
47
|
}
|
|
50
|
-
async analyze({
|
|
51
|
-
this.debugLogger(`Analyze: Invoked${__Method ? ` - ${__Method}` : ''}`);
|
|
48
|
+
async analyze({ __UserRequestedAnalyze = true } = {}) {
|
|
52
49
|
// If the user didn't request an analyze, and we're in manual mode, don't do anything.
|
|
53
50
|
if (this.isStopped && !__UserRequestedAnalyze) {
|
|
54
|
-
this.debugLogger('Analyze: Skipped', {
|
|
55
|
-
isStopped: this.isStopped,
|
|
56
|
-
__UserRequestedAnalyze
|
|
57
|
-
});
|
|
58
51
|
return;
|
|
59
52
|
}
|
|
60
|
-
|
|
53
|
+
await this.executeScript((userRequestedAnalyze) => {
|
|
61
54
|
if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
|
|
62
|
-
return Promise.resolve(
|
|
55
|
+
return Promise.resolve();
|
|
63
56
|
}
|
|
64
57
|
return new Promise(resolve => {
|
|
65
|
-
const fn = (
|
|
58
|
+
const fn = () => {
|
|
66
59
|
window.removeEventListener('axe:manual-mode-analyze-done', fn);
|
|
67
|
-
resolve(
|
|
60
|
+
resolve();
|
|
68
61
|
};
|
|
69
62
|
window.addEventListener('axe:manual-mode-analyze-done', fn);
|
|
70
63
|
const event = new CustomEvent('axe:manual-mode-analyze', {
|
|
@@ -73,10 +66,8 @@ class Controller {
|
|
|
73
66
|
window.dispatchEvent(event);
|
|
74
67
|
});
|
|
75
68
|
}, __UserRequestedAnalyze);
|
|
76
|
-
this.debugLogger(`Analyze: ${result.message}`);
|
|
77
69
|
}
|
|
78
70
|
async flush() {
|
|
79
|
-
this.debugLogger('Flush: Invoked (may analyze implicitly)');
|
|
80
71
|
const results = await this.executeScript(() => {
|
|
81
72
|
if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
|
|
82
73
|
return Promise.resolve([]);
|
|
@@ -97,12 +88,7 @@ class Controller {
|
|
|
97
88
|
window.dispatchEvent(event);
|
|
98
89
|
});
|
|
99
90
|
});
|
|
100
|
-
|
|
101
|
-
await (0, sendResultsToServer_1.default)({
|
|
102
|
-
results,
|
|
103
|
-
debugLogger: this.debugLogger
|
|
104
|
-
});
|
|
105
|
-
this.debugLogger('Flush: Complete');
|
|
91
|
+
await (0, sendResultsToServer_1.default)(results);
|
|
106
92
|
}
|
|
107
93
|
}
|
|
108
94
|
exports.default = Controller;
|
package/dist/Controller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controller.js","sourceRoot":"","sources":["../src/Controller.ts"],"names":[],"mappings":";;;;;AAAA,iCAA0C;AAC1C,gFAAwE;
|
|
1
|
+
{"version":3,"file":"Controller.js","sourceRoot":"","sources":["../src/Controller.ts"],"names":[],"mappings":"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"}
|
package/dist/cypress.js
CHANGED
|
@@ -7,8 +7,6 @@ exports.cypressConfig = void 0;
|
|
|
7
7
|
const util_1 = require("./util");
|
|
8
8
|
const sendResultsToServer_1 = __importDefault(require("./sendResultsToServer"));
|
|
9
9
|
const EventForwarder_1 = __importDefault(require("./EventForwarder"));
|
|
10
|
-
const createDebugger_1 = __importDefault(require("./createDebugger"));
|
|
11
|
-
const debugLogger = (0, createDebugger_1.default)('CypressController');
|
|
12
10
|
/**
|
|
13
11
|
* Create a Cypress config that uses the axe Watcher extension.
|
|
14
12
|
*
|
|
@@ -16,8 +14,6 @@ const debugLogger = (0, createDebugger_1.default)('CypressController');
|
|
|
16
14
|
*/
|
|
17
15
|
const cypressConfig = (config) => {
|
|
18
16
|
const { axe, ...userConfig } = config;
|
|
19
|
-
const { DEBUG } = process.env;
|
|
20
|
-
const hasWatcherDebug = DEBUG && DEBUG.includes('axe-watcher');
|
|
21
17
|
(0, util_1.writeVariables)({
|
|
22
18
|
...axe,
|
|
23
19
|
// Let the extension know to check for Cypress frames.
|
|
@@ -33,12 +29,6 @@ const cypressConfig = (config) => {
|
|
|
33
29
|
]
|
|
34
30
|
});
|
|
35
31
|
return {
|
|
36
|
-
...(hasWatcherDebug && {
|
|
37
|
-
env: {
|
|
38
|
-
...config.env,
|
|
39
|
-
__AXE_WATCHER_DEBUG: hasWatcherDebug
|
|
40
|
-
}
|
|
41
|
-
}),
|
|
42
32
|
...userConfig,
|
|
43
33
|
e2e: {
|
|
44
34
|
...userConfig.e2e,
|
|
@@ -77,14 +67,7 @@ const cypressConfig = (config) => {
|
|
|
77
67
|
// @see https://docs.cypress.io/api/commands/task#Usage
|
|
78
68
|
return null;
|
|
79
69
|
}
|
|
80
|
-
await (0, sendResultsToServer_1.default)(
|
|
81
|
-
results,
|
|
82
|
-
debugLogger
|
|
83
|
-
});
|
|
84
|
-
return null;
|
|
85
|
-
},
|
|
86
|
-
__debugAxeWatcher: (message) => {
|
|
87
|
-
debugLogger(message);
|
|
70
|
+
await (0, sendResultsToServer_1.default)(results);
|
|
88
71
|
return null;
|
|
89
72
|
}
|
|
90
73
|
});
|
|
@@ -98,7 +81,7 @@ const cypressConfig = (config) => {
|
|
|
98
81
|
if (browser.isHeadless && launchOptions.args.includes('--headless')) {
|
|
99
82
|
throw new util_1.HeadlessNotSupportedError('In Cypress, "--headless=new" became the default headless mode in Cypress version 12.15.0. Ensure your Cypress version is up to date and that you are not using a "before:browser:launch" configuration that adds "--headless" to launchOptions.args.');
|
|
100
83
|
}
|
|
101
|
-
// Load the extension. Merge
|
|
84
|
+
// Load the extension. Merge extention args if provided by the user
|
|
102
85
|
const existingArgs = launchOptions.args;
|
|
103
86
|
launchOptions.args = (0, util_1.mergeChromeArgs)(existingArgs, {
|
|
104
87
|
disableOtherExtensions: false
|
package/dist/cypress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":";;;;;;AACA,iCAMe;AACf,gFAAwE;AACxE,sEAA6C;
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":";;;;;;AACA,iCAMe;AACf,gFAAwE;AACxE,sEAA6C;AAE7C;;;;GAIG;AAEI,MAAM,aAAa,GAAG,CAC3B,MAA6C,EACtB,EAAE;IACzB,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAA;IAErC,IAAA,qBAAc,EAAC;QACb,GAAG,GAAG;QACN,sDAAsD;QACtD,OAAO,EAAE,IAAI;KACd,CAAC,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,OAAO;QACL,GAAG,UAAU;QACb,GAAG,EAAE;YACH,GAAG,UAAU,CAAC,GAAG;YACjB,KAAK,CAAC,eAAe,CACnB,SAAS,EACT,GAAG,IAAI;;gBAEP;;;;;;;;;;mBAUG;gBACH,MAAM,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAA;gBAC3C,MAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAA;gBAE5B;;;;;;;;;;;mBAWG;gBACH,MAAM,mBAAmB,GAAG,MAAM,CAAA,MAAA,MAAA,UAAU,CAAC,GAAG,0CAAE,eAAe,mDAC/D,EAAE,EACF,GAAG,IAAI,CACR,CAAA,CAAA;gBAED,EAAE,CAAC,MAAM,EAAE;oBACT,yBAAyB,EAAE,KAAK,EAAE,OAAiB,EAAE,EAAE;wBACrD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;4BACpB,wDAAwD;4BACxD,uDAAuD;4BACvD,OAAO,IAAI,CAAA;wBACb,CAAC;wBAED,MAAM,IAAA,6BAAmB,EAAC,OAAO,CAAC,CAAA;wBAElC,OAAO,IAAI,CAAA;oBACb,CAAC;iBACF,CAAC,CAAA;gBAEF,EAAE,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE;oBACrD,2FAA2F;oBAC3F,mEAAmE;oBACnE,IACE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;wBAClC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EACnC,CAAC;wBACD,MAAM,IAAI,KAAK,CACb,0GAA0G,OAAO,CAAC,IAAI,mIAAmI,CAC1P,CAAA;oBACH,CAAC;oBAED,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBACpE,MAAM,IAAI,gCAAyB,CACjC,sPAAsP,CACvP,CAAA;oBACH,CAAC;oBAED,mEAAmE;oBACnE,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAA;oBACvC,aAAa,CAAC,IAAI,GAAG,IAAA,sBAAe,EAAC,YAAY,EAAE;wBACjD,sBAAsB,EAAE,KAAK;qBAC9B,CAAC,CAAA;oBAEF,OAAO,aAAa,CAAA;gBACtB,CAAC,CAAC,CAAA;gBAEF;;;mBAGG;gBACH,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAEjC,OAAO,mBAAmB,CAAA;YAC5B,CAAC;SACF;KACF,CAAA;AACH,CAAC,CAAA;AA9GY,QAAA,aAAa,iBA8GzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export {};
|
|
1
2
|
declare global {
|
|
2
3
|
namespace Cypress {
|
|
3
4
|
interface Chainable {
|
|
@@ -11,7 +12,6 @@ declare global {
|
|
|
11
12
|
axeFlush(): Chainable<void>;
|
|
12
13
|
/** Perform an axe-core analysis. */
|
|
13
14
|
axeWatcherAnalyze(params?: {
|
|
14
|
-
__Method?: string;
|
|
15
15
|
__UserRequestedAnalyze?: boolean;
|
|
16
16
|
}): Chainable<void>;
|
|
17
17
|
/**
|
|
@@ -20,7 +20,6 @@ declare global {
|
|
|
20
20
|
* @Deprecated Use cy.axeWatcherAnalyze() instead
|
|
21
21
|
*/
|
|
22
22
|
axeAnalyze(params?: {
|
|
23
|
-
__Method?: string;
|
|
24
23
|
__UserRequestedAnalyze?: boolean;
|
|
25
24
|
}): Chainable<void>;
|
|
26
25
|
/**
|
|
@@ -49,4 +48,3 @@ declare global {
|
|
|
49
48
|
type CypressMethod = keyof Cypress.Chainable;
|
|
50
49
|
/** Commands we wrap to help us identify new page states. */
|
|
51
50
|
export declare const WRAPPED_COMMANDS: ReadonlyArray<CypressMethod>;
|
|
52
|
-
export {};
|
package/dist/cypressCommands.js
CHANGED
|
@@ -30,14 +30,6 @@ exports.WRAPPED_COMMANDS = [
|
|
|
30
30
|
'visit',
|
|
31
31
|
'wait'
|
|
32
32
|
];
|
|
33
|
-
/** Helper function to log debug messages */
|
|
34
|
-
const logDebugAxeWatcher = ({ message }) => {
|
|
35
|
-
// perf: we only want to log debug messages if the env has been set
|
|
36
|
-
// so it doesn't enqueue a Cypress command
|
|
37
|
-
if (Cypress.env('__AXE_WATCHER_DEBUG')) {
|
|
38
|
-
cy.task('__debugAxeWatcher', message, { log: false });
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
33
|
const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].includes(location.protocol);
|
|
42
34
|
/**
|
|
43
35
|
* Wrapped commands queue an axe run before calling the original method. This can seem
|
|
@@ -48,10 +40,8 @@ const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].include
|
|
|
48
40
|
* The last command that runs relies on the flush to catch the last page state.
|
|
49
41
|
*/
|
|
50
42
|
exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (originalFn, ...args) => {
|
|
51
|
-
var _a, _b, _c, _d, _e;
|
|
52
|
-
const currentCommand = cy.state('current');
|
|
53
|
-
const currentCommandName = currentCommand === null || currentCommand === void 0 ? void 0 : currentCommand.get('name');
|
|
54
|
-
const currentCommandType = currentCommand === null || currentCommand === void 0 ? void 0 : currentCommand.get('type');
|
|
43
|
+
var _a, _b, _c, _d, _e, _f;
|
|
44
|
+
const currentCommand = (_b = (_a = cy.state('current')) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b.name;
|
|
55
45
|
// TODO: Remove the feature flag once #1109 is fully resolved.
|
|
56
46
|
const tryRequerySubject = !!Cypress.env('__AXE_WATCHER_CYPRESS_REQUERY_SUBJECT_AFTER_ANALYZE') &&
|
|
57
47
|
'getSubjectFromChain' in cy;
|
|
@@ -59,43 +49,44 @@ exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (o
|
|
|
59
49
|
// We don't want to enqueue a run in these scenarios because it can cause
|
|
60
50
|
// promises to be returned from commands, which Cypress does not allow.
|
|
61
51
|
// See: https://github.com/cypress-io/cypress/issues/19086
|
|
62
|
-
if (
|
|
52
|
+
if (currentCommand && currentCommand !== method) {
|
|
63
53
|
return originalFn(...args);
|
|
64
54
|
}
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
// this, we ask Cypress to requery the subject object from the subjectChain before returning
|
|
68
|
-
// control to the original function.
|
|
69
|
-
// Note that we don't always have access to an original subjectChain to restore; the API is
|
|
70
|
-
// only available in Cypress 12+, and even then we might be wrapping a command that doesn't
|
|
71
|
-
// necessarily operate on a subject.
|
|
55
|
+
// The "Subject" is a handle to the current DOM element(s) that the command is acting on.
|
|
56
|
+
const originalSubject = (_d = (_c = cy).subject) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
72
57
|
// The "Subject Chain" represents the chain of Cypress selection operations that lead up
|
|
73
58
|
// to finding the "Subject". cy.getSubjectFromChain() requeries those operations to retrieve
|
|
74
59
|
// a fresh "Subject" handle.
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
__Method: method,
|
|
80
|
-
__UserRequestedAnalyze: false
|
|
81
|
-
});
|
|
82
|
-
// This version has issues if the subject is remounting continuously because Cypress
|
|
83
|
-
// considers the ".then" to be an action (not a query) and so isn't willing to re-run
|
|
84
|
-
// it if necessary for actionability checks
|
|
85
|
-
//
|
|
86
|
-
// commandChain = commandChain.then(() => (cy as CyInternal).getSubjectFromChain!(originalSubjectChain))
|
|
87
|
-
//
|
|
60
|
+
const originalSubjectChain = (_f = (_e = cy).subjectChain) === null || _f === void 0 ? void 0 : _f.call(_e);
|
|
61
|
+
const commandChain = cy
|
|
62
|
+
.window()
|
|
63
|
+
.axeWatcherAnalyze({ __UserRequestedAnalyze: false });
|
|
88
64
|
if (tryRequerySubject) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
65
|
+
commandChain
|
|
66
|
+
// axeWatcherAnalyze is slow; it's possible for the Cypress subject to become invalidated
|
|
67
|
+
// while it's running (eg, if the subject is in some sort of remount-loop). To account for
|
|
68
|
+
// this, we ask Cypress to requery the subject object from the subjectChain before returning
|
|
69
|
+
// control to the original function.
|
|
70
|
+
//
|
|
71
|
+
// Note that we don't always have access to an original subjectChain to restore; the API is
|
|
72
|
+
// only available in Cypress 12+, and even then we might be wrapping a command that doesn't
|
|
73
|
+
// necessarily operate on a subject.
|
|
74
|
+
.then(() => {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
// Some Cypress commands pick up the subject from cy.subject(), and some pick it up from a
|
|
77
|
+
// subject parameter that's passed to the command. Returning the updated subject from this
|
|
78
|
+
// .then() sets cy.subject() to handle the former...
|
|
79
|
+
return originalSubjectChain &&
|
|
80
|
+
((_b = (_a = cy).getSubjectFromChain) === null || _b === void 0 ? void 0 : _b.call(_a, originalSubjectChain));
|
|
81
|
+
})
|
|
82
|
+
.then(updatedSubject => {
|
|
83
|
+
// ...and this map handles the latter.
|
|
84
|
+
const argsWithRefreshedSubject = args.map(arg => originalSubject && arg === originalSubject ? updatedSubject : arg);
|
|
85
|
+
// originalFn might return a Promise that Cypress needs to be able to track, so it's important
|
|
86
|
+
// to propagate its return value even though we're not chaining any further cypress commands
|
|
87
|
+
// ourselves.
|
|
88
|
+
return originalFn(...argsWithRefreshedSubject);
|
|
89
|
+
});
|
|
99
90
|
}
|
|
100
91
|
else {
|
|
101
92
|
commandChain
|
|
@@ -104,31 +95,7 @@ exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (o
|
|
|
104
95
|
.then(() => originalFn(...args));
|
|
105
96
|
}
|
|
106
97
|
}));
|
|
107
|
-
function updateSubject(args, commandType, refreshedSubject) {
|
|
108
|
-
if (commandType === 'parent') {
|
|
109
|
-
return args;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
return [refreshedSubject, ...args.slice(1)];
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
Cypress.Commands.addQuery(
|
|
116
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
117
|
-
'__axeRestoreSubject',
|
|
118
|
-
// This must be a regular function because timeouts rely on `this`
|
|
119
|
-
// https://docs.cypress.io/api/cypress-api/custom-queries#Arguments
|
|
120
|
-
function (subjectChain, timeout) {
|
|
121
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
122
|
-
this.set('timeout', timeout);
|
|
123
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
|
-
this.set('onFail', (err) => {
|
|
125
|
-
const runner = cy.state('runnable');
|
|
126
|
-
err.codeFrame = runner.invocationDetails;
|
|
127
|
-
});
|
|
128
|
-
return () => cy.getSubjectFromChain(subjectChain);
|
|
129
|
-
});
|
|
130
98
|
function axeWatcherFlushCommand() {
|
|
131
|
-
logDebugAxeWatcher({ message: 'Flush: Invoked (may analyze implicitly)' });
|
|
132
99
|
cy.window().then(win => {
|
|
133
100
|
if (!shouldAnalyzeLocation(win.location)) {
|
|
134
101
|
return Promise.resolve();
|
|
@@ -149,7 +116,6 @@ function axeWatcherFlushCommand() {
|
|
|
149
116
|
win.dispatchEvent(event);
|
|
150
117
|
}).then(results => {
|
|
151
118
|
cy.task('__uploadAxeWatcherResults', results, { log: false });
|
|
152
|
-
logDebugAxeWatcher({ message: 'Flush: complete' });
|
|
153
119
|
});
|
|
154
120
|
});
|
|
155
121
|
}
|
|
@@ -157,31 +123,26 @@ const doesCypressCommandExist = (commandName) => {
|
|
|
157
123
|
//@ts-expect-error - Property 'cy' does not exist on type 'Cypress & CyEventEmitter'.ts(2339)
|
|
158
124
|
return !!Cypress.cy[commandName];
|
|
159
125
|
};
|
|
160
|
-
function axeWatcherAnalyzeCommand({
|
|
161
|
-
logDebugAxeWatcher({
|
|
162
|
-
message: `Analyze: Invoked${__Method ? ` - ${__Method}` : ''}`
|
|
163
|
-
});
|
|
126
|
+
function axeWatcherAnalyzeCommand({ __UserRequestedAnalyze = true } = {}) {
|
|
164
127
|
const userRequestedAnalyze = __UserRequestedAnalyze;
|
|
165
128
|
cy.window().then(win => {
|
|
166
129
|
if (!shouldAnalyzeLocation(win.location)) {
|
|
167
|
-
return Promise.resolve(
|
|
130
|
+
return Promise.resolve();
|
|
168
131
|
}
|
|
169
132
|
// If the user didn't request an analyze, and we're in manual mode, don't do anything.
|
|
170
133
|
if (isStopped && !userRequestedAnalyze) {
|
|
171
|
-
return Promise.resolve(
|
|
134
|
+
return Promise.resolve();
|
|
172
135
|
}
|
|
173
136
|
return new Promise(resolve => {
|
|
174
|
-
const fn = (
|
|
137
|
+
const fn = () => {
|
|
175
138
|
win.removeEventListener('axe:manual-mode-analyze-done', fn);
|
|
176
|
-
resolve(
|
|
139
|
+
resolve();
|
|
177
140
|
};
|
|
178
141
|
win.addEventListener('axe:manual-mode-analyze-done', fn);
|
|
179
142
|
const event = new CustomEvent('axe:manual-mode-analyze', {
|
|
180
143
|
detail: { userRequestedAnalyze }
|
|
181
144
|
});
|
|
182
145
|
win.dispatchEvent(event);
|
|
183
|
-
}).then(result => {
|
|
184
|
-
logDebugAxeWatcher({ message: `Analyze: ${result === null || result === void 0 ? void 0 : result.message}` });
|
|
185
146
|
});
|
|
186
147
|
});
|
|
187
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":"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"}
|
package/dist/playwright.js
CHANGED
|
@@ -29,7 +29,7 @@ function playwrightConfig(opts) {
|
|
|
29
29
|
exports.playwrightConfig = playwrightConfig;
|
|
30
30
|
class PlaywrightController extends Controller_1.default {
|
|
31
31
|
constructor(driver) {
|
|
32
|
-
super(
|
|
32
|
+
super();
|
|
33
33
|
this.driver = driver;
|
|
34
34
|
}
|
|
35
35
|
async executeScript(fn, ...args) {
|
package/dist/playwright.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":";;;;;;AACA,iCAKe;AACf,8DAAqC;AAKrC;;;;GAIG;AAEH,SAAgB,gBAAgB,CAAC,IAAa;IAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;IAE1B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,gCAAyB,CACjC,kHAAkH,CACnH,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAA;IACzB,IAAI,GAAG,IAAA,sBAAe,EAAC,YAAY,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtE,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,KAAK;QACf,IAAI;KACL,CAAA;AACH,CAAC;AApBD,4CAoBC;AAED,MAAa,oBAAqB,SAAQ,oBAAU;IAGlD,YAAY,MAAY;QACtB,KAAK,
|
|
1
|
+
{"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":";;;;;;AACA,iCAKe;AACf,8DAAqC;AAKrC;;;;GAIG;AAEH,SAAgB,gBAAgB,CAAC,IAAa;IAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;IAE1B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,gCAAyB,CACjC,kHAAkH,CACnH,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAA;IACzB,IAAI,GAAG,IAAA,sBAAe,EAAC,YAAY,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtE,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,KAAK;QACf,IAAI;KACL,CAAA;AACH,CAAC;AApBD,4CAoBC;AAED,MAAa,oBAAqB,SAAQ,oBAAU;IAGlD,YAAY,MAAY;QACtB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,EAA+B,EAC/B,GAAG,IAAe;QAElB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAA;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAI,EAAE,EAAE,GAAG,CAAC,CAAA;QACrD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAhBD,oDAgBC;AAED;;GAEG;AACI,MAAM,cAAc,GAAG;AAC5B,6DAA6D;AAC7D,cAA8B;AAC9B,6DAA6D;AAC7D,oBAA0C,EAC1B,EAAE;IAClB,MAAM,IAAI,KAAK,CAAC;;;;;;GAMf,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,cAAc,kBAa1B;AAED,2DAAqE;AAA5D,wHAAA,QAAQ,OAAsB"}
|
package/dist/playwrightTest.js
CHANGED
|
@@ -17,7 +17,7 @@ const playwrightTest = (options) => {
|
|
|
17
17
|
let base;
|
|
18
18
|
let chromium;
|
|
19
19
|
try {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
21
21
|
;
|
|
22
22
|
({ test: base, chromium } = require('@playwright/test'));
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwrightTest.js","sourceRoot":"","sources":["../src/playwrightTest.ts"],"names":[],"mappings":";;AAUA,6CAIqB;AACrB,iCAAwD;AAYxD;;;;;;GAMG;AAEH,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAe,EAAE;IACvD,IAAI,UAAU,GAAgC,IAAI,CAAA;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;IAElC,4DAA4D;IAC5D,oDAAoD;IACpD,IAAI,IAAU,CAAA;IACd,IAAI,QAAsC,CAAA;IAC1C,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"playwrightTest.js","sourceRoot":"","sources":["../src/playwrightTest.ts"],"names":[],"mappings":";;AAUA,6CAIqB;AACrB,iCAAwD;AAYxD;;;;;;GAMG;AAEH,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAe,EAAE;IACvD,IAAI,UAAU,GAAgC,IAAI,CAAA;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;IAElC,4DAA4D;IAC5D,oDAAoD;IACpD,IAAI,IAAU,CAAA;IACd,IAAI,QAAsC,CAAA;IAC1C,IAAI,CAAC;QACH,iEAAiE;QACjE,CAAC;QAAA,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAI,KAAe,CAAC,OAAO,CAC/D,CAAA;IACH,CAAC;IAED,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,0EAA0E;QAC1E,EAAE;QACF,mEAAmE;QACnE,EAAE;QACF,4CAA4C;QAC5C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,EAAE,EAAE;gBACzD,GAAG,MAAM;gBACT,IAAI,EAAE,IAAA,sBAAe,EAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;oBACvC,sBAAsB,EAAE,IAAI;iBAC7B,CAAC;aACH,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;YAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;YAC5B,UAAU,GAAG,IAAI,iCAAoB,CAAC,IAAI,CAAC,CAAA;YAC3C,IAAI,GAAG,IAAA,+BAAkB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC3C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAA,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
|
package/dist/puppeteer.js
CHANGED
|
@@ -36,7 +36,7 @@ function puppeteerConfig(opts) {
|
|
|
36
36
|
exports.puppeteerConfig = puppeteerConfig;
|
|
37
37
|
class PuppeteerController extends Controller_1.default {
|
|
38
38
|
constructor(driver) {
|
|
39
|
-
super(
|
|
39
|
+
super();
|
|
40
40
|
this.driver = driver;
|
|
41
41
|
}
|
|
42
42
|
async executeScript(fn, ...args) {
|
package/dist/puppeteer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer.js","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":";;;;;;AAOA,iCAKe;AACf,8DAAqC;AAWrC,SAAS,yBAAyB,CAChC,MAAuD;IAEvD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACnD,OAAM;IACR,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAyB,CACjC,mGAAmG,CACpG,CAAA;IACH,CAAC;IAED,MAAM,IAAI,gCAAyB,CACjC,8HAA8H,CAC/H,CAAA;AACH,CAAC;AAED;;;;GAIG;AAEH,SAAgB,eAAe,CAAC,IAA6B;IAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;IAE1B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,yBAAyB,CACvB,MAAyD,CAC1D,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAA;IACzB,IAAI,GAAG,IAAA,sBAAe,EAAC,YAAY,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtE,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,KAAK;QACf,IAAI;KACL,CAAA;AACH,CAAC;AAlBD,0CAkBC;AAED,MAAa,mBAAoB,SAAQ,oBAAU;IAGjD,YAAY,MAAY;QACtB,KAAK,
|
|
1
|
+
{"version":3,"file":"puppeteer.js","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":";;;;;;AAOA,iCAKe;AACf,8DAAqC;AAWrC,SAAS,yBAAyB,CAChC,MAAuD;IAEvD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACnD,OAAM;IACR,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAyB,CACjC,mGAAmG,CACpG,CAAA;IACH,CAAC;IAED,MAAM,IAAI,gCAAyB,CACjC,8HAA8H,CAC/H,CAAA;AACH,CAAC;AAED;;;;GAIG;AAEH,SAAgB,eAAe,CAAC,IAA6B;IAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;IAE1B,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,yBAAyB,CACvB,MAAyD,CAC1D,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAA;IACzB,IAAI,GAAG,IAAA,sBAAe,EAAC,YAAY,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtE,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,KAAK;QACf,IAAI;KACL,CAAA;AACH,CAAC;AAlBD,0CAkBC;AAED,MAAa,mBAAoB,SAAQ,oBAAU;IAGjD,YAAY,MAAY;QACtB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,EAA+B,EAC/B,GAAG,IAAe;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;QACtD,OAAO,MAAW,CAAA;IACpB,CAAC;CACF;AAfD,kDAeC;AAED;;GAEG;AACI,MAAM,aAAa,GAAG;AAC3B,6DAA6D;AAC7D,cAA8B;AAC9B,6DAA6D;AAC7D,UAA+B,EACf,EAAE;IAClB,MAAM,IAAI,KAAK,CAAC;;;;;;KAMb,CAAC,CAAA;AACN,CAAC,CAAA;AAbY,QAAA,aAAa,iBAazB;AAED,yDAAmE;AAA1D,sHAAA,QAAQ,OAAqB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Browser, BrowserContext, Page, Target, ElementHandle, Keyboard, Mouse, Touchscreen, Dialog, Frame, JSHandle
|
|
2
|
-
import { type PossiblyWrapped } from './util';
|
|
1
|
+
import type { Browser, BrowserContext, Page, Target, ElementHandle, Keyboard, Mouse, Touchscreen, Dialog, Frame, JSHandle } from 'puppeteer';
|
|
3
2
|
import type { PuppeteerController } from './puppeteer';
|
|
3
|
+
import { type PossiblyWrapped } from './util';
|
|
4
4
|
export declare const wrapBrowserContext: (browserContext: BrowserContext, controller: PuppeteerController) => BrowserContext;
|
|
5
5
|
export declare const wrapBrowser: (browser: Browser, controller: PuppeteerController) => Browser;
|
|
6
6
|
export declare const wrapPage: (page: Page, controller: PuppeteerController) => Page;
|
|
@@ -11,5 +11,4 @@ export declare const wrapMouse: (mouse: PossiblyWrapped<Mouse>, controller: Pupp
|
|
|
11
11
|
export declare const wrapTouchscreen: (touchscreen: PossiblyWrapped<Touchscreen>, controller: PuppeteerController) => Touchscreen;
|
|
12
12
|
export declare const wrapDialog: (dialog: PossiblyWrapped<Dialog>, controller: PuppeteerController) => Dialog;
|
|
13
13
|
export declare const wrapFrame: (frame: PossiblyWrapped<Frame>, controller: PuppeteerController) => Frame;
|
|
14
|
-
export declare const wrapLocator: (locator: PossiblyWrapped<Locator<any>>, controller: PuppeteerController) => Locator<any>;
|
|
15
14
|
export declare const wrapJSHandle: (frame: PossiblyWrapped<JSHandle>, controller: PuppeteerController) => JSHandle;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrapJSHandle = exports.
|
|
3
|
+
exports.wrapJSHandle = exports.wrapFrame = exports.wrapDialog = exports.wrapTouchscreen = exports.wrapMouse = exports.wrapKeyboard = exports.wrapElementHandle = exports.wrapTarget = exports.wrapPage = exports.wrapBrowser = exports.wrapBrowserContext = void 0;
|
|
4
4
|
const util_1 = require("./util");
|
|
5
5
|
const wrapBrowserContext = (browserContext, controller) => {
|
|
6
6
|
if ((0, util_1.isWrapped)(browserContext)) {
|
|
@@ -154,13 +154,6 @@ const wrapPage = (page, controller) => {
|
|
|
154
154
|
return (0, exports.wrapTouchscreen)(host.touchscreen, controller);
|
|
155
155
|
case 'mainFrame':
|
|
156
156
|
return () => (0, exports.wrapFrame)(host.mainFrame(), controller);
|
|
157
|
-
case 'locator':
|
|
158
|
-
return (arg) => {
|
|
159
|
-
const locator = typeof arg === 'string'
|
|
160
|
-
? host.locator(arg)
|
|
161
|
-
: host.locator(arg);
|
|
162
|
-
return locator ? (0, exports.wrapLocator)(locator, controller) : null;
|
|
163
|
-
};
|
|
164
157
|
case 'close':
|
|
165
158
|
return async (...args) => {
|
|
166
159
|
await controller.flush();
|
|
@@ -393,13 +386,6 @@ const wrapFrame = (frame, controller) => {
|
|
|
393
386
|
const f = host.parentFrame();
|
|
394
387
|
return f ? (0, exports.wrapFrame)(f, controller) : null;
|
|
395
388
|
};
|
|
396
|
-
case 'locator':
|
|
397
|
-
return (arg) => {
|
|
398
|
-
const locator = typeof arg === 'string'
|
|
399
|
-
? host.locator(arg)
|
|
400
|
-
: host.locator(arg);
|
|
401
|
-
return locator ? (0, exports.wrapLocator)(locator, controller) : null;
|
|
402
|
-
};
|
|
403
389
|
case 'click':
|
|
404
390
|
case 'focus':
|
|
405
391
|
case 'goto':
|
|
@@ -418,50 +404,6 @@ const wrapFrame = (frame, controller) => {
|
|
|
418
404
|
return proxy;
|
|
419
405
|
};
|
|
420
406
|
exports.wrapFrame = wrapFrame;
|
|
421
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
422
|
-
const wrapLocator = (locator, controller) => {
|
|
423
|
-
if ((0, util_1.isWrapped)(locator)) {
|
|
424
|
-
return locator;
|
|
425
|
-
}
|
|
426
|
-
const proxy = new Proxy(locator, {
|
|
427
|
-
get(host, prop) {
|
|
428
|
-
switch (prop) {
|
|
429
|
-
case 'waitHandle':
|
|
430
|
-
return async (...args) => {
|
|
431
|
-
const handle = await host[prop](...args);
|
|
432
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
433
|
-
if (Object.prototype.hasOwnProperty.call(handle, '$$')) {
|
|
434
|
-
return (0, exports.wrapElementHandle)(handle, controller);
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
return (0, exports.wrapJSHandle)(handle, controller);
|
|
438
|
-
}
|
|
439
|
-
};
|
|
440
|
-
case 'setTimeout':
|
|
441
|
-
case 'setVisibility':
|
|
442
|
-
case 'setWaitForEnabled':
|
|
443
|
-
case 'setEnsureElementIsInTheViewport':
|
|
444
|
-
case 'setWaitForStableBoundingBox':
|
|
445
|
-
case 'clone':
|
|
446
|
-
case 'map':
|
|
447
|
-
case 'filter':
|
|
448
|
-
return (...args) =>
|
|
449
|
-
// @ts-expect-error TypeScript is angry.
|
|
450
|
-
(0, exports.wrapLocator)(host[prop](...args), controller);
|
|
451
|
-
case 'click':
|
|
452
|
-
case 'fill':
|
|
453
|
-
case 'hover':
|
|
454
|
-
case 'scroll':
|
|
455
|
-
return (0, util_1.proxiedGetFuncWithAnalyze)(host, prop, controller);
|
|
456
|
-
default:
|
|
457
|
-
return (0, util_1.proxiedGetWithoutAnalyze)(host, prop);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
});
|
|
461
|
-
(0, util_1.markAsWrapped)(proxy);
|
|
462
|
-
return proxy;
|
|
463
|
-
};
|
|
464
|
-
exports.wrapLocator = wrapLocator;
|
|
465
407
|
const wrapJSHandle = (frame, controller) => {
|
|
466
408
|
if ((0, util_1.isWrapped)(frame)) {
|
|
467
409
|
return frame;
|