@axe-core/watcher 3.10.0-next.93439030 → 3.10.0-next.b1440e9c

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.
@@ -27,6 +27,7 @@ exports.WRAPPED_COMMANDS = [
27
27
  'trigger',
28
28
  'type',
29
29
  'uncheck',
30
+ 'visit',
30
31
  'wait'
31
32
  ];
32
33
  const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].includes(location.protocol);
@@ -41,6 +42,9 @@ const shouldAnalyzeLocation = (location) => ['http:', 'https:', 'file:'].include
41
42
  exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (originalFn, ...args) => {
42
43
  var _a, _b, _c, _d, _e, _f;
43
44
  const currentCommand = (_b = (_a = cy.state('current')) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b.name;
45
+ // TODO: Remove the feature flag once #1109 is fully resolved.
46
+ const tryRequerySubject = !!Cypress.env('__AXE_WATCHER_CYPRESS_REQUERY_SUBJECT_AFTER_ANALYZE') &&
47
+ 'getSubjectFromChain' in cy;
44
48
  // Some commands, like "type" call other commands internally, like "click".
45
49
  // We don't want to enqueue a run in these scenarios because it can cause
46
50
  // promises to be returned from commands, which Cypress does not allow.
@@ -54,84 +58,48 @@ exports.WRAPPED_COMMANDS.forEach(method => Cypress.Commands.overwrite(method, (o
54
58
  // to finding the "Subject". cy.getSubjectFromChain() requeries those operations to retrieve
55
59
  // a fresh "Subject" handle.
56
60
  const originalSubjectChain = (_f = (_e = cy).subjectChain) === null || _f === void 0 ? void 0 : _f.call(_e);
57
- cy.window()
58
- .then(win => {
59
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
- if (win && !win.__AXE_WATCHER_HAS_VISITED) {
61
- /**
62
- * Set a flag on the Window to indicate that a wrapped method has been called.
63
- * This is used to determine whether we should call `axeFlush` after the test.
64
- */
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- ;
67
- win.__AXE_WATCHER_HAS_VISITED = true;
68
- }
69
- })
70
- .axeWatcherAnalyze({ __UserRequestedAnalyze: false })
71
- // axeWatcherAnalyze is slow; it's possible for the Cypress subject to become invalidated
72
- // while it's running (eg, if the subject is in some sort of remount-loop). To account for
73
- // this, we ask Cypress to requery the subject object from the subjectChain before returning
74
- // control to the original function.
75
- //
76
- // Note that we don't always have access to an original subjectChain to restore; the API is
77
- // only available in Cypress 12+, and even then we might be wrapping a command that doesn't
78
- // necessarily operate on a subject.
79
- .then(() => {
80
- var _a, _b;
81
- // Some Cypress commands pick up the subject from cy.subject(), and some pick it up from a
82
- // subject parameter that's passed to the command. Returning the updated subject from this
83
- // .then() sets cy.subject() to handle the former...
84
- return originalSubjectChain &&
85
- ((_b = (_a = cy).getSubjectFromChain) === null || _b === void 0 ? void 0 : _b.call(_a, originalSubjectChain));
86
- })
87
- .then(updatedSubject => {
88
- // ...and this map handles the latter.
89
- const argsWithRefreshedSubject = args.map(arg => originalSubject && arg === originalSubject ? updatedSubject : arg);
90
- // originalFn might return a Promise that Cypress needs to be able to track, so it's important
91
- // to propagate its return value even though we're not chaining any further cypress commands
92
- // ourselves.
93
- return originalFn(...argsWithRefreshedSubject);
94
- });
95
- }));
96
- /**
97
- * The `visit` command is wrapped differently than the other commands. This is because
98
- * we need to actually visit and load the page before we can run axe.
99
- *
100
- * We queue an axe run, run the original visit command, and then mark
101
- * the page visited before returning visit result.
102
- */
103
- Cypress.Commands.overwrite('visit', (originalFn, ...args) => {
104
- // We use `cy.wrap(null)` here just to get into the Cypress command queue.
105
- cy.wrap(null)
106
- .axeWatcherAnalyze({ __UserRequestedAnalyze: false })
107
- .then(() => originalFn(...args))
108
- .then(visitResult => {
109
- cy.window()
110
- .then(win => {
111
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
112
- if (win && !win.__AXE_WATCHER_HAS_VISITED) {
113
- /**
114
- * Set a flag on the Window to indicate that a wrapped method has been called.
115
- * This is used to determine whether we should call `axeFlush` after the test.
116
- */
117
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
- ;
119
- win.__AXE_WATCHER_HAS_VISITED = true;
120
- }
61
+ const commandChain = cy
62
+ .window()
63
+ .axeWatcherAnalyze({ __UserRequestedAnalyze: false });
64
+ if (tryRequerySubject) {
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));
121
81
  })
122
- .then(() => visitResult);
123
- });
124
- });
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
+ });
90
+ }
91
+ else {
92
+ commandChain
93
+ // Set the subject back to the previous subject
94
+ .then(() => originalSubject)
95
+ .then(() => originalFn(...args));
96
+ }
97
+ }));
125
98
  function axeWatcherFlushCommand() {
126
99
  cy.window().then(win => {
127
100
  if (!shouldAnalyzeLocation(win.location)) {
128
101
  return Promise.resolve();
129
102
  }
130
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
131
- const hasVisited = win.__AXE_WATCHER_HAS_VISITED;
132
- if (!hasVisited) {
133
- return Promise.resolve();
134
- }
135
103
  return new Promise(resolve => {
136
104
  const results = [];
137
105
  const onAxeResult = (event) => {
@@ -140,7 +108,6 @@ function axeWatcherFlushCommand() {
140
108
  const onFlushEnd = () => {
141
109
  win.removeEventListener('axe:flush-end', onFlushEnd);
142
110
  win.removeEventListener('axe:result', onAxeResult);
143
- win.__AXE_WATCHER_HAS_VISITED = false;
144
111
  resolve(results);
145
112
  };
146
113
  win.addEventListener('axe:flush-end', onFlushEnd);
@@ -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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"}