@axe-core/watcher 3.10.0 → 3.11.0-next.0f67f781

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.
@@ -1,9 +1,17 @@
1
+ import type { Debugger } from 'debug';
2
+ interface ControllerParams {
3
+ /** The namespace for the debug logger. */
4
+ debugLoggerName: string;
5
+ }
1
6
  declare abstract class Controller {
2
7
  protected abstract executeScript<A = unknown, T = void>(fn: string | ((...args: A[]) => Promise<T>), ...args: unknown[]): Promise<T>;
3
8
  protected isStopped: boolean;
9
+ protected debugLogger: Debugger;
10
+ constructor({ debugLoggerName }: ControllerParams);
4
11
  start(): Promise<void>;
5
12
  stop(): Promise<void>;
6
- analyze({ __UserRequestedAnalyze }?: {
13
+ analyze({ __Method, __UserRequestedAnalyze }?: {
14
+ __Method?: string;
7
15
  __UserRequestedAnalyze?: boolean;
8
16
  }): Promise<void>;
9
17
  flush(): Promise<void>;
@@ -5,9 +5,11 @@ 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"));
8
9
  class Controller {
9
- constructor() {
10
+ constructor({ debugLoggerName }) {
10
11
  this.isStopped = false;
12
+ this.debugLogger = (0, createDebugger_1.default)(debugLoggerName);
11
13
  }
12
14
  async start() {
13
15
  (0, util_1.updateAutoAnalyze)(true);
@@ -45,19 +47,24 @@ class Controller {
45
47
  });
46
48
  });
47
49
  }
48
- async analyze({ __UserRequestedAnalyze = true } = {}) {
50
+ async analyze({ __Method, __UserRequestedAnalyze = true } = {}) {
51
+ this.debugLogger(`Analyze: Invoked${__Method ? ` - ${__Method}` : ''}`);
49
52
  // If the user didn't request an analyze, and we're in manual mode, don't do anything.
50
53
  if (this.isStopped && !__UserRequestedAnalyze) {
54
+ this.debugLogger('Analyze: Skipped', {
55
+ isStopped: this.isStopped,
56
+ __UserRequestedAnalyze
57
+ });
51
58
  return;
52
59
  }
53
- await this.executeScript((userRequestedAnalyze) => {
60
+ const result = await this.executeScript((userRequestedAnalyze) => {
54
61
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
55
- return Promise.resolve();
62
+ return Promise.resolve({ message: 'Skipped - Invalid protocol' });
56
63
  }
57
64
  return new Promise(resolve => {
58
- const fn = () => {
65
+ const fn = (event) => {
59
66
  window.removeEventListener('axe:manual-mode-analyze-done', fn);
60
- resolve();
67
+ resolve(event.detail);
61
68
  };
62
69
  window.addEventListener('axe:manual-mode-analyze-done', fn);
63
70
  const event = new CustomEvent('axe:manual-mode-analyze', {
@@ -66,8 +73,10 @@ class Controller {
66
73
  window.dispatchEvent(event);
67
74
  });
68
75
  }, __UserRequestedAnalyze);
76
+ this.debugLogger(`Analyze: ${result.message}`);
69
77
  }
70
78
  async flush() {
79
+ this.debugLogger('Flush: Invoked (may analyze implicitly)');
71
80
  const results = await this.executeScript(() => {
72
81
  if (!['http:', 'https:', 'file:'].includes(window.location.protocol)) {
73
82
  return Promise.resolve([]);
@@ -88,7 +97,12 @@ class Controller {
88
97
  window.dispatchEvent(event);
89
98
  });
90
99
  });
91
- await (0, sendResultsToServer_1.default)(results);
100
+ this.debugLogger(`Flush: Received ${results.length} results`);
101
+ await (0, sendResultsToServer_1.default)({
102
+ results,
103
+ debugLogger: this.debugLogger
104
+ });
105
+ this.debugLogger('Flush: Complete');
92
106
  }
93
107
  }
94
108
  exports.default = Controller;
@@ -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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"}
@@ -34,12 +34,10 @@ class EventForwarder {
34
34
  .reduce((prevLaunchOptions, listener) => listener(browser, prevLaunchOptions), launchOptions));
35
35
  }
36
36
  else {
37
- /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
38
- on(event, async (...args) => {
39
- for (const listener of this.emitter.listeners(event)) {
40
- await listener(...args);
41
- }
42
- });
37
+ for (const listener of this.emitter.listeners(event)) {
38
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
39
+ on(event, listener);
40
+ }
43
41
  }
44
42
  }
45
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventForwarder.js","sourceRoot":"","sources":["../src/EventForwarder.ts"],"names":[],"mappings":";;;;;AAYA,kEAAwC;AAExC,MAAM,cAAc;IAKlB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAY,EAAE,CAAA;QACjC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAQ,EAAE;YAC7B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAqC,CAAC,CAAA;YAChE,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,EAAwB;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC9C,0EAA0E;YAC1E,wEAAwE;YACxE,uBAAuB;YACvB,IAAI,KAAK,KAAK,uBAAuB,EAAE,CAAC;gBACtC,EAAE,CACA,uBAAuB,EACvB,CACE,OAAwB,EACxB,aAAiD,EACjD,EAAE,CACF,IAAI,CAAC,OAAO;qBACT,SAAS,CAAC,KAAK,CAAC;qBAChB,MAAM,CACL,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAC9B,QAAQ,CACN,OAAO,EACP,iBAAiB,CAC+B,EACpD,aAAa,CACd,CACN,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,EAAE,CAAC,KAAY,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;oBAC5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBACrD,MAAM,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,kBAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"EventForwarder.js","sourceRoot":"","sources":["../src/EventForwarder.ts"],"names":[],"mappings":";;;;;AAYA,kEAAwC;AAExC,MAAM,cAAc;IAKlB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAY,EAAE,CAAA;QACjC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAQ,EAAE;YAC7B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAqC,CAAC,CAAA;YAChE,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,EAAwB;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC9C,0EAA0E;YAC1E,wEAAwE;YACxE,uBAAuB;YACvB,IAAI,KAAK,KAAK,uBAAuB,EAAE,CAAC;gBACtC,EAAE,CACA,uBAAuB,EACvB,CACE,OAAwB,EACxB,aAAiD,EACjD,EAAE,CACF,IAAI,CAAC,OAAO;qBACT,SAAS,CAAC,KAAK,CAAC;qBAChB,MAAM,CACL,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAC9B,QAAQ,CACN,OAAO,EACP,iBAAiB,CAC+B,EACpD,aAAa,CACd,CACN,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrD,iEAAiE;oBACjE,EAAE,CAAC,KAAY,EAAE,QAAQ,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,kBAAe,cAAc,CAAA"}
@@ -0,0 +1,9 @@
1
+ import debug from 'debug';
2
+ /**
3
+ * Creates a debug logger with the given namespace
4
+ *
5
+ * @param namespace The namespace for the debug logger for example: `PlaywrightController` or `PlaywrightWrapping`.
6
+ * @returns debug instance
7
+ */
8
+ declare function createDebugger(namespace: string): debug.Debugger;
9
+ export default createDebugger;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const debug_1 = __importDefault(require("debug"));
7
+ /**
8
+ * The prefix for the debug logger allows users to filter logs by the prefix
9
+ * using the debug package.
10
+ *
11
+ * @example
12
+ * ```bash
13
+ * DEBUG=axe-watcher:* yarn test
14
+ * ```
15
+ */
16
+ const NAMESPACE_PREFIX = 'axe-watcher';
17
+ /**
18
+ * Creates a debug logger with the given namespace
19
+ *
20
+ * @param namespace The namespace for the debug logger for example: `PlaywrightController` or `PlaywrightWrapping`.
21
+ * @returns debug instance
22
+ */
23
+ function createDebugger(namespace) {
24
+ return (0, debug_1.default)(`${NAMESPACE_PREFIX}:${namespace}`);
25
+ }
26
+ exports.default = createDebugger;
27
+ //# sourceMappingURL=createDebugger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDebugger.js","sourceRoot":"","sources":["../src/createDebugger.ts"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AAEzB;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAEtC;;;;;GAKG;AAEH,SAAS,cAAc,CAAC,SAAiB;IACvC,OAAO,IAAA,eAAK,EAAC,GAAG,gBAAgB,IAAI,SAAS,EAAE,CAAC,CAAA;AAClD,CAAC;AAED,kBAAe,cAAc,CAAA"}
package/dist/cypress.js CHANGED
@@ -4,10 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.cypressConfig = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
7
  const util_1 = require("./util");
9
8
  const sendResultsToServer_1 = __importDefault(require("./sendResultsToServer"));
10
9
  const EventForwarder_1 = __importDefault(require("./EventForwarder"));
10
+ const createDebugger_1 = __importDefault(require("./createDebugger"));
11
+ const debugLogger = (0, createDebugger_1.default)('CypressController');
11
12
  /**
12
13
  * Create a Cypress config that uses the axe Watcher extension.
13
14
  *
@@ -15,6 +16,8 @@ const EventForwarder_1 = __importDefault(require("./EventForwarder"));
15
16
  */
16
17
  const cypressConfig = (config) => {
17
18
  const { axe, ...userConfig } = config;
19
+ const { DEBUG } = process.env;
20
+ const hasWatcherDebug = DEBUG && DEBUG.includes('axe-watcher');
18
21
  (0, util_1.writeVariables)({
19
22
  ...axe,
20
23
  // Let the extension know to check for Cypress frames.
@@ -30,6 +33,12 @@ const cypressConfig = (config) => {
30
33
  ]
31
34
  });
32
35
  return {
36
+ ...(hasWatcherDebug && {
37
+ env: {
38
+ ...config.env,
39
+ __AXE_WATCHER_DEBUG: hasWatcherDebug
40
+ }
41
+ }),
33
42
  ...userConfig,
34
43
  e2e: {
35
44
  ...userConfig.e2e,
@@ -61,53 +70,40 @@ const cypressConfig = (config) => {
61
70
  * ensure we wait for the user's `setupNodeEvents` to resolve.
62
71
  */
63
72
  const userNodeEventConfig = await ((_b = (_a = userConfig.e2e) === null || _a === void 0 ? void 0 : _a.setupNodeEvents) === null || _b === void 0 ? void 0 : _b.call(_a, on, ...args));
64
- on('before:browser:launch', (browser, launchOptions) => {
65
- // We only support Chrome.
66
- if (browser.name === 'chrome') {
67
- if (browser.isHeadless &&
68
- launchOptions.args.includes('--headless')) {
69
- 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.');
73
+ on('task', {
74
+ __uploadAxeWatcherResults: async (results) => {
75
+ if (!results.length) {
76
+ // Indicates to Cypress that the event has been handled.
77
+ // @see https://docs.cypress.io/api/commands/task#Usage
78
+ return null;
70
79
  }
71
- // Load the extension. Merge extention args if provided by the user
72
- const launchOptionsArgs = [
73
- ...launchOptions.args,
74
- ...util_1.extensionArgs
75
- ].reduce((prev, arg) => {
76
- const [key, value] = arg.split('=');
77
- if (!prev[key]) {
78
- prev[key] = [];
79
- }
80
- if (value) {
81
- prev[key].push(value);
82
- }
83
- return prev;
84
- }, {});
85
- launchOptions.args = Object.entries(launchOptionsArgs).map(([key, value]) => value.length > 0 ? [key, value.join(',')].join('=') : key);
80
+ await (0, sendResultsToServer_1.default)({
81
+ results,
82
+ debugLogger
83
+ });
84
+ return null;
85
+ },
86
+ __debugAxeWatcher: (message) => {
87
+ debugLogger(message);
88
+ return null;
86
89
  }
87
- return launchOptions;
88
90
  });
89
- // Read the results sent from the extension, then forward to the server.
90
- on('after:run', async () => {
91
- let results;
92
- try {
93
- results = fs_1.default
94
- .readdirSync('cypress/axe-watcher')
95
- .filter(f => f.endsWith('.json'));
96
- }
97
- catch (error) {
98
- // this is a non-error; the test suite likely just failed early
99
- // without running any scans
100
- if (error.code === 'ENOENT') {
101
- return;
102
- }
103
- throw error;
91
+ on('before:browser:launch', (browser, launchOptions) => {
92
+ // We only officially support Chrome, but for backcompat we are permissive and accept other
93
+ // Chromium-based browsers (eg, "chromium", "chrome:beta", "edge").
94
+ if (browser.name.startsWith('firefox') ||
95
+ browser.name.startsWith('electron')) {
96
+ throw new Error(`The @axe-core/watcher package only supports running in Chrome, but Cypress is configured with browser "${browser.name}". Please refer to our System Requirements for more information: https://docs.deque.com/developer-hub/2/en/dh-system-requirements`);
104
97
  }
105
- for (const result of results) {
106
- const data = fs_1.default.readFileSync(`cypress/axe-watcher/${result}`, 'utf8');
107
- const parsed = JSON.parse(data);
108
- await (0, sendResultsToServer_1.default)(parsed);
109
- fs_1.default.unlinkSync(`cypress/axe-watcher/${result}`);
98
+ if (browser.isHeadless && launchOptions.args.includes('--headless')) {
99
+ 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.');
110
100
  }
101
+ // Load the extension. Merge extension args if provided by the user
102
+ const existingArgs = launchOptions.args;
103
+ launchOptions.args = (0, util_1.mergeChromeArgs)(existingArgs, {
104
+ disableOtherExtensions: false
105
+ });
106
+ return launchOptions;
111
107
  });
112
108
  /**
113
109
  * Forward the accumulated events to cypress.
@@ -1 +1 @@
1
- {"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cypress.js","sourceRoot":"","sources":["../src/cypress.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ declare global {
12
12
  axeFlush(): Chainable<void>;
13
13
  /** Perform an axe-core analysis. */
14
14
  axeWatcherAnalyze(params?: {
15
+ __Method?: string;
15
16
  __UserRequestedAnalyze?: boolean;
16
17
  }): Chainable<void>;
17
18
  /**
@@ -20,6 +21,7 @@ declare global {
20
21
  * @Deprecated Use cy.axeWatcherAnalyze() instead
21
22
  */
22
23
  axeAnalyze(params?: {
24
+ __Method?: string;
23
25
  __UserRequestedAnalyze?: boolean;
24
26
  }): Chainable<void>;
25
27
  /**
@@ -42,9 +44,6 @@ declare global {
42
44
  * @Deprecated Use cy.axeWatcherStop() instead
43
45
  */
44
46
  axeStop(): Chainable<void>;
45
- /** Access Cypress internal state */
46
- state(state: any): any;
47
- subject?: () => any;
48
47
  }
49
48
  }
50
49
  }
@@ -27,8 +27,17 @@ exports.WRAPPED_COMMANDS = [
27
27
  'trigger',
28
28
  'type',
29
29
  'uncheck',
30
+ 'visit',
30
31
  'wait'
31
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
+ };
32
41
  const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].includes(location.protocol);
33
42
  /**
34
43
  * Wrapped commands queue an axe run before calling the original method. This can seem
@@ -39,8 +48,11 @@ const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].include
39
48
  * The last command that runs relies on the flush to catch the last page state.
40
49
  */
41
50
  exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (originalFn, ...args) => {
42
- var _a, _b, _c;
51
+ var _a, _b, _c, _d, _e, _f;
43
52
  const currentCommand = (_b = (_a = cy.state('current')) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b.name;
53
+ // TODO: Remove the feature flag once #1109 is fully resolved.
54
+ const tryRequerySubject = !!Cypress.env('__AXE_WATCHER_CYPRESS_REQUERY_SUBJECT_AFTER_ANALYZE') &&
55
+ 'getSubjectFromChain' in cy;
44
56
  // Some commands, like "type" call other commands internally, like "click".
45
57
  // We don't want to enqueue a run in these scenarios because it can cause
46
58
  // promises to be returned from commands, which Cypress does not allow.
@@ -48,65 +60,56 @@ exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (o
48
60
  if (currentCommand && currentCommand !== method) {
49
61
  return originalFn(...args);
50
62
  }
51
- // Get the previous subject from the chain so we can pass it along to child commands.
52
- const subject = (_c = cy.subject) === null || _c === void 0 ? void 0 : _c.call(cy);
53
- cy.window()
54
- .then(win => {
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
- if (win && !win.__AXE_WATCHER_HAS_VISITED) {
57
- /**
58
- * Set a flag on the Window to indicate that a wrapped method has been called.
59
- * This is used to determine whether we should call `axeFlush` after the test.
60
- */
61
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
- ;
63
- win.__AXE_WATCHER_HAS_VISITED = true;
64
- }
65
- })
66
- .axeWatcherAnalyze({ __UserRequestedAnalyze: false })
67
- // Set the subject back to the previous subject
68
- .then(() => subject)
69
- .then(() => originalFn(...args));
70
- }));
71
- /**
72
- * The `visit` command is wrapped differently than the other commands. This is because
73
- * we need to actually visit and load the page before we can run axe.
74
- *
75
- * We queue an axe run, run the original visit command, and then mark
76
- * the page visited before returning visit result.
77
- */
78
- Cypress.Commands.overwrite('visit', (originalFn, ...args) => {
79
- // We use `cy.wrap(null)` here just to get into the Cypress command queue.
80
- cy.wrap(null)
81
- .axeWatcherAnalyze({ __UserRequestedAnalyze: false })
82
- .then(() => originalFn(...args))
83
- .then(visitResult => {
84
- cy.window()
85
- .then(win => {
86
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
- if (win && !win.__AXE_WATCHER_HAS_VISITED) {
88
- /**
89
- * Set a flag on the Window to indicate that a wrapped method has been called.
90
- * This is used to determine whether we should call `axeFlush` after the test.
91
- */
92
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
- ;
94
- win.__AXE_WATCHER_HAS_VISITED = true;
95
- }
96
- })
97
- .then(() => visitResult);
63
+ // The "Subject" is a handle to the current DOM element(s) that the command is acting on.
64
+ const originalSubject = (_d = (_c = cy).subject) === null || _d === void 0 ? void 0 : _d.call(_c);
65
+ // The "Subject Chain" represents the chain of Cypress selection operations that lead up
66
+ // to finding the "Subject". cy.getSubjectFromChain() requeries those operations to retrieve
67
+ // a fresh "Subject" handle.
68
+ const originalSubjectChain = (_f = (_e = cy).subjectChain) === null || _f === void 0 ? void 0 : _f.call(_e);
69
+ const commandChain = cy.window().axeWatcherAnalyze({
70
+ __Method: method,
71
+ __UserRequestedAnalyze: false
98
72
  });
99
- });
73
+ if (tryRequerySubject) {
74
+ commandChain
75
+ // axeWatcherAnalyze is slow; it's possible for the Cypress subject to become invalidated
76
+ // while it's running (eg, if the subject is in some sort of remount-loop). To account for
77
+ // this, we ask Cypress to requery the subject object from the subjectChain before returning
78
+ // control to the original function.
79
+ //
80
+ // Note that we don't always have access to an original subjectChain to restore; the API is
81
+ // only available in Cypress 12+, and even then we might be wrapping a command that doesn't
82
+ // necessarily operate on a subject.
83
+ .then(() => {
84
+ var _a, _b;
85
+ // Some Cypress commands pick up the subject from cy.subject(), and some pick it up from a
86
+ // subject parameter that's passed to the command. Returning the updated subject from this
87
+ // .then() sets cy.subject() to handle the former...
88
+ return originalSubjectChain &&
89
+ ((_b = (_a = cy).getSubjectFromChain) === null || _b === void 0 ? void 0 : _b.call(_a, originalSubjectChain));
90
+ })
91
+ .then(updatedSubject => {
92
+ // ...and this map handles the latter.
93
+ const argsWithRefreshedSubject = args.map(arg => originalSubject && arg === originalSubject ? updatedSubject : arg);
94
+ // originalFn might return a Promise that Cypress needs to be able to track, so it's important
95
+ // to propagate its return value even though we're not chaining any further cypress commands
96
+ // ourselves.
97
+ return originalFn(...argsWithRefreshedSubject);
98
+ });
99
+ }
100
+ else {
101
+ commandChain
102
+ // Set the subject back to the previous subject
103
+ .then(() => originalSubject)
104
+ .then(() => originalFn(...args));
105
+ }
106
+ }));
100
107
  function axeWatcherFlushCommand() {
108
+ logDebugAxeWatcher({ message: 'Flush: Invoked (may analyze implicitly)' });
101
109
  cy.window().then(win => {
102
110
  if (!shouldAnalyzeLocation(win.location)) {
103
111
  return Promise.resolve();
104
112
  }
105
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
- const hasVisited = win.__AXE_WATCHER_HAS_VISITED;
107
- if (!hasVisited) {
108
- return Promise.resolve();
109
- }
110
113
  return new Promise(resolve => {
111
114
  const results = [];
112
115
  const onAxeResult = (event) => {
@@ -115,7 +118,6 @@ function axeWatcherFlushCommand() {
115
118
  const onFlushEnd = () => {
116
119
  win.removeEventListener('axe:flush-end', onFlushEnd);
117
120
  win.removeEventListener('axe:result', onAxeResult);
118
- win.__AXE_WATCHER_HAS_VISITED = false;
119
121
  resolve(results);
120
122
  };
121
123
  win.addEventListener('axe:flush-end', onFlushEnd);
@@ -123,11 +125,8 @@ function axeWatcherFlushCommand() {
123
125
  const event = new CustomEvent('axe:flush-start');
124
126
  win.dispatchEvent(event);
125
127
  }).then(results => {
126
- // Generate a random-enough filename to avoid collisions.
127
- const time = new Date().getTime();
128
- const rnd = Math.random().toString(36).slice(2);
129
- const filename = `cypress/axe-watcher/${time}-${rnd}.json`;
130
- cy.writeFile(filename, JSON.stringify(results, null, 2));
128
+ cy.task('__uploadAxeWatcherResults', results, { log: false });
129
+ logDebugAxeWatcher({ message: 'Flush: complete' });
131
130
  });
132
131
  });
133
132
  }
@@ -135,26 +134,31 @@ const doesCypressCommandExist = (commandName) => {
135
134
  //@ts-expect-error - Property 'cy' does not exist on type 'Cypress & CyEventEmitter'.ts(2339)
136
135
  return !!Cypress.cy[commandName];
137
136
  };
138
- function axeWatcherAnalyzeCommand({ __UserRequestedAnalyze = true } = {}) {
137
+ function axeWatcherAnalyzeCommand({ __Method, __UserRequestedAnalyze = true } = {}) {
138
+ logDebugAxeWatcher({
139
+ message: `Analyze: Invoked${__Method ? ` - ${__Method}` : ''}`
140
+ });
139
141
  const userRequestedAnalyze = __UserRequestedAnalyze;
140
142
  cy.window().then(win => {
141
143
  if (!shouldAnalyzeLocation(win.location)) {
142
- return Promise.resolve();
144
+ return Promise.resolve({ message: `Skipped - Invalid protocol` });
143
145
  }
144
146
  // If the user didn't request an analyze, and we're in manual mode, don't do anything.
145
147
  if (isStopped && !userRequestedAnalyze) {
146
- return Promise.resolve();
148
+ return Promise.resolve({ message: `Skipped (Manual mode)` });
147
149
  }
148
150
  return new Promise(resolve => {
149
- const fn = () => {
151
+ const fn = (event) => {
150
152
  win.removeEventListener('axe:manual-mode-analyze-done', fn);
151
- resolve();
153
+ resolve(event.detail);
152
154
  };
153
155
  win.addEventListener('axe:manual-mode-analyze-done', fn);
154
156
  const event = new CustomEvent('axe:manual-mode-analyze', {
155
157
  detail: { userRequestedAnalyze }
156
158
  });
157
159
  win.dispatchEvent(event);
160
+ }).then(result => {
161
+ logDebugAxeWatcher({ message: `Analyze: ${result === null || result === void 0 ? void 0 : result.message}` });
158
162
  });
159
163
  });
160
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cypressCommands.js","sourceRoot":"","sources":["../src/cypressCommands.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,8 @@ function playwrightConfig(opts) {
18
18
  if (config.headless) {
19
19
  throw new util_1.HeadlessNotSupportedError('In Playwright, include "--headless=new" in the "args" property of your options instead of using "headless: true"');
20
20
  }
21
- args = args.concat(util_1.extensionArgs);
21
+ const existingArgs = args;
22
+ args = (0, util_1.mergeChromeArgs)(existingArgs, { disableOtherExtensions: true });
22
23
  return {
23
24
  ...config,
24
25
  headless: false,
@@ -28,7 +29,7 @@ function playwrightConfig(opts) {
28
29
  exports.playwrightConfig = playwrightConfig;
29
30
  class PlaywrightController extends Controller_1.default {
30
31
  constructor(driver) {
31
- super();
32
+ super({ debugLoggerName: 'PlaywrightController' });
32
33
  this.driver = driver;
33
34
  }
34
35
  async executeScript(fn, ...args) {
@@ -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,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAa,CAAC,CAAA;IAEjC,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,KAAK;QACf,IAAI;KACL,CAAA;AACH,CAAC;AAnBD,4CAmBC;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"}
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,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC,CAAA;QAElD,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;AAjBD,oDAiBC;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"}
@@ -17,6 +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
21
  ;
21
22
  ({ test: base, chromium } = require('@playwright/test'));
22
23
  }
@@ -33,7 +34,9 @@ const playwrightTest = (options) => {
33
34
  context: async ({}, use) => {
34
35
  const context = await chromium.launchPersistentContext('', {
35
36
  ...config,
36
- args: [...(config.args || []), ...util_1.extensionArgs]
37
+ args: (0, util_1.mergeChromeArgs)(config.args || [], {
38
+ disableOtherExtensions: true
39
+ })
37
40
  });
38
41
  await use(context);
39
42
  await context.close();