@checkdigit/eslint-plugin 7.6.0-PR.75-c06b → 7.6.0-PR.75-c175

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.
@@ -4,6 +4,9 @@ import { getParent, isBlockStatement } from "../library/ts-tree.mjs";
4
4
  function getResponseBodyRetrievalText(responseVariableName) {
5
5
  return `await ${responseVariableName}.json()`;
6
6
  }
7
+ function getResponseStatusRetrievalText(responseVariableName) {
8
+ return `${responseVariableName}.status`;
9
+ }
7
10
  function getResponseHeadersRetrievalText(responseVariableName) {
8
11
  return `${responseVariableName}.headers`;
9
12
  }
@@ -33,7 +36,8 @@ function hasAssertions(fixtureCall) {
33
36
  export {
34
37
  getResponseBodyRetrievalText,
35
38
  getResponseHeadersRetrievalText,
39
+ getResponseStatusRetrievalText,
36
40
  hasAssertions,
37
41
  isInvalidResponseHeadersAccess
38
42
  };
39
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L2ZldGNoLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsc0JBQWdDO0FBRXpDLFNBQVMsV0FBVyx3QkFBd0I7QUFFckMsU0FBUyw2QkFBNkIsc0JBQThCO0FBQ3pFLFNBQU8sU0FBUyxvQkFBb0I7QUFDdEM7QUFFTyxTQUFTLGdDQUFnQyxzQkFBOEI7QUFDNUUsU0FBTyxHQUFHLG9CQUFvQjtBQUNoQztBQUVPLFNBQVMsK0JBQStCLHVCQUErQztBQUM1RixRQUFNLDZCQUE2QixVQUFVLHFCQUFxQjtBQUNsRSxNQUFJLDRCQUE0QixTQUFTLGVBQWUsb0JBQW9CO0FBQzFFLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFDRSw0QkFBNEIsU0FBUyxlQUFlLGtCQUNwRCwyQkFBMkIsT0FBTyxTQUFTLGVBQWUsb0JBQzFELDJCQUEyQixPQUFPLFNBQVMsU0FBUyxlQUFlLGNBQ25FLDJCQUEyQixPQUFPLFNBQVMsU0FBUyxPQUNwRDtBQUNBLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxFQUNMLDRCQUE0QixTQUFTLGVBQWUsb0JBQ3BELDJCQUEyQixTQUFTLFNBQVMsZUFBZSxjQUM1RCwyQkFBMkIsU0FBUyxTQUFTO0FBRWpEO0FBRU8sU0FBUyxjQUFjLGFBQXFDO0FBQ2pFLE1BQUksaUJBQWlCLFdBQVcsR0FBRztBQUNqQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sU0FBUyxVQUFVLFdBQVc7QUFDcEMsTUFBSSxDQUFDLFFBQVE7QUFDWCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQ0UsT0FBTyxTQUFTLGVBQWUsb0JBQy9CLE9BQU8sU0FBUyxTQUFTLGVBQWUsY0FDeEMsT0FBTyxTQUFTLFNBQVMsWUFDekIsVUFBVSxNQUFNLEdBQUcsU0FBUyxlQUFlLGdCQUMzQztBQUNBLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxjQUFjLE1BQU07QUFDN0I7IiwKICAibmFtZXMiOiBbXQp9Cg==
43
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L2ZldGNoLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsc0JBQWdDO0FBRXpDLFNBQVMsV0FBVyx3QkFBd0I7QUFFckMsU0FBUyw2QkFBNkIsc0JBQThCO0FBQ3pFLFNBQU8sU0FBUyxvQkFBb0I7QUFDdEM7QUFFTyxTQUFTLCtCQUErQixzQkFBOEI7QUFDM0UsU0FBTyxHQUFHLG9CQUFvQjtBQUNoQztBQUVPLFNBQVMsZ0NBQWdDLHNCQUE4QjtBQUM1RSxTQUFPLEdBQUcsb0JBQW9CO0FBQ2hDO0FBRU8sU0FBUywrQkFBK0IsdUJBQStDO0FBQzVGLFFBQU0sNkJBQTZCLFVBQVUscUJBQXFCO0FBQ2xFLE1BQUksNEJBQTRCLFNBQVMsZUFBZSxvQkFBb0I7QUFDMUUsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUNFLDRCQUE0QixTQUFTLGVBQWUsa0JBQ3BELDJCQUEyQixPQUFPLFNBQVMsZUFBZSxvQkFDMUQsMkJBQTJCLE9BQU8sU0FBUyxTQUFTLGVBQWUsY0FDbkUsMkJBQTJCLE9BQU8sU0FBUyxTQUFTLE9BQ3BEO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLEVBQ0wsNEJBQTRCLFNBQVMsZUFBZSxvQkFDcEQsMkJBQTJCLFNBQVMsU0FBUyxlQUFlLGNBQzVELDJCQUEyQixTQUFTLFNBQVM7QUFFakQ7QUFFTyxTQUFTLGNBQWMsYUFBcUM7QUFDakUsTUFBSSxpQkFBaUIsV0FBVyxHQUFHO0FBQ2pDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxTQUFTLFVBQVUsV0FBVztBQUNwQyxNQUFJLENBQUMsUUFBUTtBQUNYLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFDRSxPQUFPLFNBQVMsZUFBZSxvQkFDL0IsT0FBTyxTQUFTLFNBQVMsZUFBZSxjQUN4QyxPQUFPLFNBQVMsU0FBUyxZQUN6QixVQUFVLE1BQU0sR0FBRyxTQUFTLGVBQWUsZ0JBQzNDO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLGNBQWMsTUFBTTtBQUM3QjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -12,7 +12,12 @@ import getDocumentationUrl from "../get-documentation-url.mjs";
12
12
  import { getIndentation } from "../library/format.mjs";
13
13
  import { isValidPropertyName } from "../library/variable.mjs";
14
14
  import { analyzeResponseReferences } from "./response-reference.mjs";
15
- import { getResponseBodyRetrievalText, getResponseHeadersRetrievalText, hasAssertions } from "./fetch.mjs";
15
+ import {
16
+ getResponseBodyRetrievalText,
17
+ getResponseHeadersRetrievalText,
18
+ getResponseStatusRetrievalText,
19
+ hasAssertions
20
+ } from "./fetch.mjs";
16
21
  import { replaceEndpointUrlPrefixWithBasePath } from "./url.mjs";
17
22
  var ruleId = "no-fixture";
18
23
  function analyzeFixtureCall(call, results, sourceCode) {
@@ -36,6 +41,9 @@ function analyzeFixtureCall(call, results, sourceCode) {
36
41
  if (awaitParent.property.type === AST_NODE_TYPES.Identifier && awaitParent.property.name === "body") {
37
42
  results.inlineBodyReference = awaitParent;
38
43
  }
44
+ if (awaitParent.property.type === AST_NODE_TYPES.Identifier && (awaitParent.property.name === "status" || awaitParent.property.name === "statusCode")) {
45
+ results.inlineStatusReference = awaitParent;
46
+ }
39
47
  if (awaitParent.property.type === AST_NODE_TYPES.Identifier && (awaitParent.property.name === "header" || awaitParent.property.name === "headers")) {
40
48
  results.inlineHeadersReference = awaitParent;
41
49
  }
@@ -211,6 +219,7 @@ var rule = createRule({
211
219
  headersReferences: responseHeadersReferences,
212
220
  statusReferences: responseStatusReferences,
213
221
  destructuringBodyVariable: destructuringResponseBodyVariable,
222
+ destructuringStatusVariable: destructuringResponseStatusVariable,
214
223
  destructuringHeadersVariable: destructuringResponseHeadersVariable
215
224
  } = analyzeResponseReferences(fixtureCallInformation.variableDeclaration, scopeManager);
216
225
  const originalUrlArgumentText = sourceCode.getText(urlArgumentNode);
@@ -243,10 +252,12 @@ ${indentation}`);
243
252
  );
244
253
  const isResponseBodyVariableRedefinitionNeeded = destructuringResponseBodyVariable !== void 0 || fixtureCallInformation.inlineBodyReference !== void 0 || responseBodyReferences.length > 0 && !responseBodyReferences.some(isResponseBodyRedefinition);
245
254
  const redefineResponseBodyVariableName = `${responseVariableNameToUse}Body`;
255
+ const isResponseStatusVariableRedefinitionNeeded = destructuringResponseStatusVariable !== void 0 || fixtureCallInformation.inlineStatusReference !== void 0;
256
+ const redefineResponseStatusVariableName = `${responseVariableNameToUse}Status`;
246
257
  const isResponseHeadersVariableRedefinitionNeeded = destructuringResponseHeadersVariable !== void 0 && // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
247
258
  destructuringResponseHeadersVariable.type === AST_NODE_TYPES.ObjectPattern || fixtureCallInformation.inlineHeadersReference !== void 0;
248
259
  const redefineResponseHeadersVariableName = `${responseVariableNameToUse}Headers`;
249
- const isResponseVariableRedefinitionNeeded = fixtureCallInformation.variableAssignment === void 0 && responseVariable === void 0 && fixtureCallInformation.assertions !== void 0 || isResponseBodyVariableRedefinitionNeeded || isResponseHeadersVariableRedefinitionNeeded;
260
+ const isResponseVariableRedefinitionNeeded = fixtureCallInformation.variableAssignment === void 0 && responseVariable === void 0 && fixtureCallInformation.assertions !== void 0 || isResponseBodyVariableRedefinitionNeeded || isResponseStatusVariableRedefinitionNeeded || isResponseHeadersVariableRedefinitionNeeded;
250
261
  const responseBodyHeadersVariableRedefineLines = isResponseVariableRedefinitionNeeded ? [
251
262
  // eslint-disable-next-line no-nested-ternary
252
263
  ...destructuringResponseBodyVariable ? [
@@ -256,6 +267,13 @@ ${indentation}`);
256
267
  `const ${redefineResponseBodyVariableName} = ${getResponseBodyRetrievalText(responseVariableNameToUse)}`
257
268
  ] : [],
258
269
  // eslint-disable-next-line no-nested-ternary
270
+ ...destructuringResponseStatusVariable ? [
271
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
272
+ `${fixtureCallInformation.variableDeclaration?.kind ?? "const"} ${destructuringResponseStatusVariable.type === AST_NODE_TYPES.ObjectPattern ? sourceCode.getText(destructuringResponseStatusVariable) : destructuringResponseStatusVariable.name} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`
273
+ ] : isResponseStatusVariableRedefinitionNeeded ? [
274
+ `const ${redefineResponseStatusVariableName} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`
275
+ ] : [],
276
+ // eslint-disable-next-line no-nested-ternary
259
277
  ...destructuringResponseHeadersVariable ? (
260
278
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
261
279
  destructuringResponseHeadersVariable.type === AST_NODE_TYPES.ObjectPattern ? destructuringResponseHeadersVariable.properties.map((property) => {
@@ -361,4 +379,4 @@ export {
361
379
  no_fixture_default as default,
362
380
  ruleId
363
381
  };
364
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L25vLWZpeHR1cmUudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBUUEsU0FBUyxVQUFVLGNBQWM7QUFFakMsU0FBUyxnQkFBZ0IsbUJBQTZCO0FBSXREO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsT0FBTyx5QkFBeUI7QUFDaEMsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyxpQ0FBaUM7QUFDMUMsU0FBUyw4QkFBOEIsaUNBQWlDLHFCQUFxQjtBQUM3RixTQUFTLDRDQUE0QztBQUU5QyxJQUFNLFNBQVM7QUF1QnRCLFNBQVMsbUJBQW1CLE1BQStCLFNBQWlDLFlBQXdCO0FBQ2xILFFBQU0sU0FBUyxVQUFVLElBQUk7QUFDN0IsU0FBTyxHQUFHLFFBQVEscURBQXFEO0FBRXZFLE1BQUk7QUFDSixNQUFJLE9BQU8sU0FBUyxlQUFlLGlCQUFpQjtBQUVsRCxZQUFRLGNBQWM7QUFDdEIsWUFBUSxXQUFXO0FBQUEsRUFDckIsV0FDRSxPQUFPLFNBQVMsZUFBZSxtQkFDL0IsT0FBTyxTQUFTLGVBQWUsa0JBQy9CLE9BQU8sU0FBUyxlQUFlLHlCQUMvQjtBQUVBLFlBQVEsY0FBYztBQUN0QixZQUFRLFdBQVc7QUFBQSxFQUNyQixXQUFXLE9BQU8sU0FBUyxlQUFlLGlCQUFpQjtBQUN6RCxZQUFRLGNBQWM7QUFDdEIsVUFBTSxxQkFBcUIsc0JBQXNCLE1BQU07QUFDdkQsV0FBTyxHQUFHLGtCQUFrQjtBQUM1QixVQUFNLGNBQWMsVUFBVSxNQUFNO0FBQ3BDLFFBQUksYUFBYSxTQUFTLGVBQWUsa0JBQWtCO0FBQ3pELGNBQVEsV0FBVztBQUNuQixjQUFRLHNCQUFzQjtBQUM5QixVQUFJLFlBQVksU0FBUyxTQUFTLGVBQWUsY0FBYyxZQUFZLFNBQVMsU0FBUyxRQUFRO0FBQ25HLGdCQUFRLHNCQUFzQjtBQUFBLE1BQ2hDO0FBQ0Es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
382
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L25vLWZpeHR1cmUudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBUUEsU0FBUyxVQUFVLGNBQWM7QUFFakMsU0FBUyxnQkFBZ0IsbUJBQTZCO0FBSXREO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsT0FBTyx5QkFBeUI7QUFDaEMsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyxpQ0FBaUM7QUFDMUM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsNENBQTRDO0FBRTlDLElBQU0sU0FBUztBQXdCdEIsU0FBUyxtQkFBbUIsTUFBK0IsU0FBaUMsWUFBd0I7QUFDbEgsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixTQUFPLEdBQUcsUUFBUSxxREFBcUQ7QUFFdkUsTUFBSTtBQUNKLE1BQUksT0FBTyxTQUFTLGVBQWUsaUJBQWlCO0FBRWxELFlBQVEsY0FBYztBQUN0QixZQUFRLFdBQVc7QUFBQSxFQUNyQixXQUNFLE9BQU8sU0FBUyxlQUFlLG1CQUMvQixPQUFPLFNBQVMsZUFBZSxrQkFDL0IsT0FBTyxTQUFTLGVBQWUseUJBQy9CO0FBRUEsWUFBUSxjQUFjO0FBQ3RCLFlBQVEsV0FBVztBQUFBLEVBQ3JCLFdBQVcsT0FBTyxTQUFTLGVBQWUsaUJBQWlCO0FBQ3pELFlBQVEsY0FBYztBQUN0QixVQUFNLHFCQUFxQixzQkFBc0IsTUFBTTtBQUN2RCxXQUFPLEdBQUcsa0JBQWtCO0FBQzVCLFVBQU0sY0FBYyxVQUFVLE1BQU07QUFDcEMsUUFBSSxhQUFhLFNBQVMsZUFBZSxrQkFBa0I7QUFDekQsY0FBUSxXQUFXO0FBQ25CLGNBQVEsc0JBQXNCO0FBQzlCLFVBQUksWUFBWSxTQUFTLFNBQVMsZUFBZSxjQUFjLFlBQVksU0FBUyxTQUFTLFFBQVE7QUFDbkcsZ0JBQVEs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
@@ -11,7 +11,7 @@ import {
11
11
  import getDocumentationUrl from "../get-documentation-url.mjs";
12
12
  import { getIndentation } from "../library/format.mjs";
13
13
  import { analyzeResponseReferences } from "./response-reference.mjs";
14
- import { getResponseBodyRetrievalText, getResponseHeadersRetrievalText } from "./fetch.mjs";
14
+ import { getResponseBodyRetrievalText, getResponseHeadersRetrievalText, getResponseStatusRetrievalText } from "./fetch.mjs";
15
15
  var ruleId = "no-supertest";
16
16
  function analyzeFixtureCall(call, results, sourceCode) {
17
17
  const parent = getParent(call);
@@ -34,6 +34,9 @@ function analyzeFixtureCall(call, results, sourceCode) {
34
34
  if (awaitParent.property.type === AST_NODE_TYPES.Identifier && awaitParent.property.name === "body") {
35
35
  results.inlineBodyReference = awaitParent;
36
36
  }
37
+ if (awaitParent.property.type === AST_NODE_TYPES.Identifier && (awaitParent.property.name === "status" || awaitParent.property.name === "statusCode")) {
38
+ results.inlineStatusReference = awaitParent;
39
+ }
37
40
  if (awaitParent.property.type === AST_NODE_TYPES.Identifier && (awaitParent.property.name === "header" || awaitParent.property.name === "headers")) {
38
41
  results.inlineHeadersReference = awaitParent;
39
42
  }
@@ -211,7 +214,8 @@ var rule = createRule({
211
214
  headersReferences: responseHeadersReferences,
212
215
  statusReferences: responseStatusReferences,
213
216
  destructuringBodyVariable: destructuringResponseBodyVariable,
214
- destructuringHeadersVariable: destructuringResponseHeadersVariable
217
+ destructuringHeadersVariable: destructuringResponseHeadersVariable,
218
+ destructuringStatusVariable: destructuringResponseStatusVariable
215
219
  } = analyzeResponseReferences(fixtureCallInformation.variableDeclaration, scopeManager);
216
220
  const responseVariableNameToUse = getResponseVariableNameToUse(
217
221
  scopeManager,
@@ -220,10 +224,12 @@ var rule = createRule({
220
224
  );
221
225
  const isResponseBodyVariableRedefinitionNeeded = destructuringResponseBodyVariable !== void 0 || fixtureCallInformation.inlineBodyReference !== void 0 || responseBodyReferences.length > 0 && !responseBodyReferences.some(isResponseBodyRedefinition);
222
226
  const redefineResponseBodyVariableName = `${responseVariableNameToUse}Body`;
227
+ const isResponseStatusVariableRedefinitionNeeded = destructuringResponseStatusVariable !== void 0 || fixtureCallInformation.inlineStatusReference !== void 0;
228
+ const redefineResponseStatusVariableName = `${responseVariableNameToUse}Status`;
223
229
  const isResponseHeadersVariableRedefinitionNeeded = destructuringResponseHeadersVariable !== void 0 && // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
224
230
  destructuringResponseHeadersVariable.type === AST_NODE_TYPES.ObjectPattern || fixtureCallInformation.inlineHeadersReference !== void 0;
225
231
  const redefineResponseHeadersVariableName = `${responseVariableNameToUse}Headers`;
226
- const isResponseVariableRedefinitionNeeded = fixtureCallInformation.variableAssignment === void 0 && responseVariable === void 0 && fixtureCallInformation.assertions !== void 0 || isResponseBodyVariableRedefinitionNeeded || isResponseHeadersVariableRedefinitionNeeded;
232
+ const isResponseVariableRedefinitionNeeded = fixtureCallInformation.variableAssignment === void 0 && responseVariable === void 0 && fixtureCallInformation.assertions !== void 0 || isResponseBodyVariableRedefinitionNeeded || isResponseStatusVariableRedefinitionNeeded || isResponseHeadersVariableRedefinitionNeeded;
227
233
  const responseBodyHeadersVariableRedefineLines = isResponseVariableRedefinitionNeeded ? [
228
234
  // eslint-disable-next-line no-nested-ternary
229
235
  ...destructuringResponseBodyVariable ? [
@@ -233,6 +239,13 @@ var rule = createRule({
233
239
  `const ${redefineResponseBodyVariableName} = ${getResponseBodyRetrievalText(responseVariableNameToUse)}`
234
240
  ] : [],
235
241
  // eslint-disable-next-line no-nested-ternary
242
+ ...destructuringResponseStatusVariable ? [
243
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
244
+ `${fixtureCallInformation.variableDeclaration?.kind ?? "const"} ${destructuringResponseStatusVariable.type === AST_NODE_TYPES.ObjectPattern ? sourceCode.getText(destructuringResponseStatusVariable) : destructuringResponseStatusVariable.name} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`
245
+ ] : isResponseStatusVariableRedefinitionNeeded ? [
246
+ `const ${redefineResponseStatusVariableName} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`
247
+ ] : [],
248
+ // eslint-disable-next-line no-nested-ternary
236
249
  ...destructuringResponseHeadersVariable ? (
237
250
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
238
251
  destructuringResponseHeadersVariable.type === AST_NODE_TYPES.ObjectPattern ? destructuringResponseHeadersVariable.properties.map((property) => {
@@ -338,4 +351,4 @@ export {
338
351
  no_supertest_default as default,
339
352
  ruleId
340
353
  };
341
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L25vLXN1cGVydGVzdC50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLFVBQVUsY0FBYztBQUVqQyxTQUFTLGdCQUFnQixtQkFBNkI7QUFJdEQ7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxPQUFPLHlCQUF5QjtBQUNoQyxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGlDQUFpQztBQUMxQyxTQUFTLDhCQUE4Qix1Q0FBdUM7QUFFdkUsSUFBTSxTQUFTO0FBdUJ0QixTQUFTLG1CQUFtQixNQUErQixTQUFpQyxZQUF3QjtBQUNsSCxRQUFNLFNBQVMsVUFBVSxJQUFJO0FBQzdCLFNBQU8sR0FBRyxRQUFRLHFEQUFxRDtBQUV2RSxNQUFJO0FBQ0osTUFBSSxPQUFPLFNBQVMsZUFBZSxpQkFBaUI7QUFFbEQsWUFBUSxjQUFjO0FBQ3RCLFlBQVEsV0FBVztBQUFBLEVBQ3JCLFdBQ0UsT0FBTyxTQUFTLGVBQWUsbUJBQy9CLE9BQU8sU0FBUyxlQUFlLGtCQUMvQixPQUFPLFNBQVMsZUFBZSx5QkFDL0I7QUFFQSxZQUFRLGNBQWM7QUFDdEIsWUFBUSxXQUFXO0FBQUEsRUFDckIsV0FBVyxPQUFPLFNBQVMsZUFBZSxpQkFBaUI7QUFDekQsWUFBUSxjQUFjO0FBQ3RCLFVBQU0scUJBQXFCLHNCQUFzQixNQUFNO0FBQ3ZELFdBQU8sR0FBRyxrQkFBa0I7QUFDNUIsVUFBTSxjQUFjLFVBQVUsTUFBTTtBQUNwQyxRQUFJLGFBQWEsU0FBUyxlQUFlLGtCQUFrQjtBQUN6RCxjQUFRLFdBQVc7QUFDbkIsY0FBUSxzQkFBc0I7QUFDOUIsVUFBSSxZQUFZLFNBQVMsU0FBUyxlQUFlLGNBQWMsWUFBWSxTQUFTLFNBQVMsUUFBUTtBQUNuRyxnQkFBUSxzQkFBc0I7QUFBQSxNQUNoQztBQUNBLFVBQ0UsWUFBWSxTQUFTLFNBQVMsZUFBZSxlQUM1QyxZQUFZLFNBQVMs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
354
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L25vLXN1cGVydGVzdC50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLFVBQVUsY0FBYztBQUVqQyxTQUFTLGdCQUFnQixtQkFBNkI7QUFJdEQ7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxPQUFPLHlCQUF5QjtBQUNoQyxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGlDQUFpQztBQUMxQyxTQUFTLDhCQUE4QixpQ0FBaUMsc0NBQXNDO0FBRXZHLElBQU0sU0FBUztBQXdCdEIsU0FBUyxtQkFBbUIsTUFBK0IsU0FBaUMsWUFBd0I7QUFDbEgsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixTQUFPLEdBQUcsUUFBUSxxREFBcUQ7QUFFdkUsTUFBSTtBQUNKLE1BQUksT0FBTyxTQUFTLGVBQWUsaUJBQWlCO0FBRWxELFlBQVEsY0FBYztBQUN0QixZQUFRLFdBQVc7QUFBQSxFQUNyQixXQUNFLE9BQU8sU0FBUyxlQUFlLG1CQUMvQixPQUFPLFNBQVMsZUFBZSxrQkFDL0IsT0FBTyxTQUFTLGVBQWUseUJBQy9CO0FBRUEsWUFBUSxjQUFjO0FBQ3RCLFlBQVEsV0FBVztBQUFBLEVBQ3JCLFdBQVcsT0FBTyxTQUFTLGVBQWUsaUJBQWlCO0FBQ3pELFlBQVEsY0FBYztBQUN0QixVQUFNLHFCQUFxQixzQkFBc0IsTUFBTTtBQUN2RCxXQUFPLEdBQUcsa0JBQWtCO0FBQzVCLFVBQU0sY0FBYyxVQUFVLE1BQU07QUFDcEMsUUFBSSxhQUFhLFNBQVMsZUFBZSxrQkFBa0I7QUFDekQsY0FBUSxXQUFXO0FBQ25CLGNBQVEsc0JBQXNCO0FBQzlCLFVBQUksWUFBWSxTQUFTLFNBQVMsZUFBZSxjQUFjLFlBQVksU0FBUyxTQUFTLFFBQVE7QUFDbkcsZ0JBQVEsc0JBQXNCO0FBQUEsTUFDaEM7QUFDQSxVQUNFLFlBQVksU0FBUyxTQUFTLGVBQWUsZUFDNUMsWUFB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
@@ -38,6 +38,11 @@ function analyzeResponseReferences(variableDeclaration, scopeManager) {
38
38
  identifierParent.type === AST_NODE_TYPES.Property && identifierParent.key.type === AST_NODE_TYPES.Identifier && identifierParent.key.name === "body"
39
39
  ) {
40
40
  results.destructuringBodyVariable = responseVariable;
41
+ } else if (
42
+ // body reference through destruction/renaming, e.g. "const { body } = ..."
43
+ identifierParent.type === AST_NODE_TYPES.Property && identifierParent.key.type === AST_NODE_TYPES.Identifier && (identifierParent.key.name === "status" || identifierParent.key.name === "statusCode")
44
+ ) {
45
+ results.destructuringStatusVariable = responseVariable;
41
46
  } else if (
42
47
  // header reference through destruction/renaming, e.g. "const { headers } = ..."
43
48
  identifierParent.type === AST_NODE_TYPES.Property && identifierParent.key.type === AST_NODE_TYPES.Identifier && identifierParent.key.name === "headers"
@@ -53,6 +58,9 @@ function analyzeResponseReferences(variableDeclaration, scopeManager) {
53
58
  if (parent2?.type === AST_NODE_TYPES.Property && parent2.key.type === AST_NODE_TYPES.Identifier && parent2.key.name === "body") {
54
59
  results.destructuringBodyVariable = parent;
55
60
  }
61
+ if (parent2?.type === AST_NODE_TYPES.Property && parent2.key.type === AST_NODE_TYPES.Identifier && (parent2.key.name === "status" || parent2.key.name === "statusCode")) {
62
+ results.destructuringStatusVariable = parent;
63
+ }
56
64
  if (parent2?.type === AST_NODE_TYPES.Property && parent2.key.type === AST_NODE_TYPES.Identifier && (parent2.key.name === "header" || parent2.key.name === "headers")) {
57
65
  results.destructuringHeadersVariable = parent;
58
66
  }
@@ -67,4 +75,4 @@ function analyzeResponseReferences(variableDeclaration, scopeManager) {
67
75
  export {
68
76
  analyzeResponseReferences
69
77
  };
70
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L3Jlc3BvbnNlLXJlZmVyZW5jZS50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLFVBQVUsY0FBYztBQUVqQyxPQUFPLFdBQVc7QUFFbEIsU0FBUyxzQkFBZ0M7QUFFekMsU0FBUyxpQkFBaUI7QUFFMUIsSUFBTSxNQUFNLE1BQU0sa0NBQWtDO0FBTzdDLFNBQVMsMEJBQ2QscUJBQ0EsY0FTQTtBQUNBLFFBQU0sVUFRRjtBQUFBLElBQ0YsZ0JBQWdCLENBQUM7QUFBQSxJQUNqQixtQkFBbUIsQ0FBQztBQUFBLElBQ3BCLGtCQUFrQixDQUFDO0FBQUEsRUFDckI7QUFDQSxNQUFJLENBQUMscUJBQXFCO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxvQkFBb0IsYUFBYSxxQkFBcUIsbUJBQW1CO0FBQy9FLGFBQVcsb0JBQW9CLG1CQUFtQjtBQUNoRCxVQUFNLGFBQWEsaUJBQWlCLFlBQVksQ0FBQztBQUNqRCxXQUFPLEdBQUcsVUFBVTtBQUNwQixVQUFNLG1CQUFtQixVQUFVLFVBQVU7QUFDN0MsV0FBTyxHQUFHLGdCQUFnQjtBQUMxQixRQUFJLGlCQUFpQixTQUFTLGVBQWUsb0JBQW9CO0FBRS9ELGNBQVEsV0FBVztBQUNuQixZQUFNLHFCQUFxQixpQkFBaUIsV0FBVztBQUFBLFFBQUksQ0FBQyxzQkFDMUQsVUFBVSxrQkFBa0IsVUFBVTtBQUFBLE1BQ3hDO0FBRUEsY0FBUSxpQkFBaUIsbUJBQW1CO0FBQUEsUUFDMUMsQ0FBQyxTQUNDLE1BQU0sU0FBUyxlQUFlLG9CQUM5QixLQUFLLFNBQVMsU0FBUyxlQUFlLGNBQ3RDLEtBQUssU0FBUyxTQUFTO0FBQUEsTUFDM0I7QUFFQSxjQUFRLG9CQUFvQixtQkFBbUI7QUFBQSxRQUM3QyxDQUFDLFNBQ0MsTUFBTSxTQUFTLGVBQWUsb0JBQzlCLEtBQUssU0FBUyxTQUFTLGVBQWUsZUFDckMsS0FBSyxTQUFTLFNBQVMsWUFBWSxLQUFLLFNBQVMsU0FBUyxhQUFhLEtBQUssU0FBUyxTQUFTO0FBQUEsTUFDbkc7QUFFQSxjQUFRLG1CQUFtQixtQkFBbUI7QUFBQSxRQUM1QyxDQUFDLFNBQ0MsTUFBTSxTQUFTLGVBQWUsb0JBQzlCLEtBQUssU0FBUyxTQUFTLGVBQWUsZUFDckMsS0FBSyxTQUFTLFNBQVMsWUFBWSxLQUFLLFNBQVMsU0FBUztBQUFBLE1BQy9EO0FBQUEsSUFDRjtBQUFBO0FBQUEsTUFFRSxpQkFBaUIsU0FBUyxlQUFlLFlBQ3pDLGlCQUFpQixJQUFJLFNBQVMsZUFBZSxjQUM3QyxpQkFBaUIsSUFBSSxTQUFTO0FBQUEsTUFDOUI7QUFDQSxjQUFRLDRCQUE0QjtBQUFBLElBQ3RDO0FBQUE7QUFBQSxNQUVFLGlCQUFpQixTQUFTLGVBQWUsWUFDekMsaUJBQWlCLElBQUksU0FBUyxlQUFlLGNBQzdDLGlCQUFpQixJQUFJLFNBQVM7QUFBQSxNQUM5QjtBQUNBLGNBQVEsK0JBQStCO0FBQ3ZDLGNBQVEsaUNBQWlDLGlCQUFpQixXQUN2RCxJQUFJLENBQUMsY0FBYyxVQUFVLFVBQVUsRUFDdkMsSUFBSSxTQUFTLEVBQ2I7QUFBQSxRQUNDLENBQUMsV0FDQyxRQUFRLFNBQVMsZUFBZSxvQkFDaEMsT0FBTyxTQUFTLFNBQVMsZUFBZSxjQUN4QyxPQUFPLFNBQVMsU0FBUyxTQUN6QixVQUFVLE1BQU0sR0FBRyxTQUFTLGVBQWU7QUFBQSxNQUMvQztBQUFBLElBQ0osV0FBVyxpQkFBaUIsU0FBUyxlQUFlLFVBQVU7QUFDNUQsWUFBTSxTQUFTLFVBQVUsZ0JBQWdCO0FBQ3pDLFVBQUksUUFBUSxTQUFTLGVBQWUsZUFBZTtBQUVqRCxjQUFNLFVBQVUsVUFBVSxNQUFNO0FBQ2hDLFlBQ0UsU0FBUyxTQUFTLGVBQWUsWUFDakMsUUFBUSxJQUFJLFNBQVMsZUFBZSxjQUNwQyxRQUFRLElBQUksU0FBUyxRQUNyQjtBQUNBLGtCQUFRLDRCQUE0QjtBQUFBLFFBQ3RDO0FBQ0EsWUFDRSxTQUFTLFNBQVMsZUFBZSxZQUNqQyxRQUFRLElBQUksU0FBUyxlQUFlLGVBQ25DLFFBQVEsSUFBSSxTQUFTLFlBQVksUUFBUSxJQUFJLFNBQVMsWUFDdkQ7QUFDQSxrQkFBUSwrQkFBK0I7QUFBQSxRQUN6QztBQUFBLE1BQ0Y7QUFBQSxJQUNGLE9BQU87QUFDTCxVQUFJLDJDQUEyQyxnQkFBZ0I7QUFDL0QsWUFBTSxJQUFJLE1BQU0sd0NBQXdDLGlCQUFpQixJQUFJLEVBQUU7QUFBQSxJQUNqRjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
78
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L3Jlc3BvbnNlLXJlZmVyZW5jZS50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLFVBQVUsY0FBYztBQUVqQyxPQUFPLFdBQVc7QUFFbEIsU0FBUyxzQkFBZ0M7QUFFekMsU0FBUyxpQkFBaUI7QUFFMUIsSUFBTSxNQUFNLE1BQU0sa0NBQWtDO0FBUTdDLFNBQVMsMEJBQ2QscUJBQ0EsY0FVQTtBQUNBLFFBQU0sVUFTRjtBQUFBLElBQ0YsZ0JBQWdCLENBQUM7QUFBQSxJQUNqQixtQkFBbUIsQ0FBQztBQUFBLElBQ3BCLGtCQUFrQixDQUFDO0FBQUEsRUFDckI7QUFDQSxNQUFJLENBQUMscUJBQXFCO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxvQkFBb0IsYUFBYSxxQkFBcUIsbUJBQW1CO0FBQy9FLGFBQVcsb0JBQW9CLG1CQUFtQjtBQUNoRCxVQUFNLGFBQWEsaUJBQWlCLFlBQVksQ0FBQztBQUNqRCxXQUFPLEdBQUcsVUFBVTtBQUNwQixVQUFNLG1CQUFtQixVQUFVLFVBQVU7QUFDN0MsV0FBTyxHQUFHLGdCQUFnQjtBQUMxQixRQUFJLGlCQUFpQixTQUFTLGVBQWUsb0JBQW9CO0FBRS9ELGNBQVEsV0FBVztBQUNuQixZQUFNLHFCQUFxQixpQkFBaUIsV0FBVztBQUFBLFFBQUksQ0FBQyxzQkFDMUQsVUFBVSxrQkFBa0IsVUFBVTtBQUFBLE1BQ3hDO0FBRUEsY0FBUSxpQkFBaUIsbUJBQW1CO0FBQUEsUUFDMUMsQ0FBQyxTQUNDLE1BQU0sU0FBUyxlQUFlLG9CQUM5QixLQUFLLFNBQVMsU0FBUyxlQUFlLGNBQ3RDLEtBQUssU0FBUyxTQUFTO0FBQUEsTUFDM0I7QUFFQSxjQUFRLG9CQUFvQixtQkFBbUI7QUFBQSxRQUM3QyxDQUFDLFNBQ0MsTUFBTSxTQUFTLGVBQWUsb0JBQzlCLEtBQUssU0FBUyxTQUFTLGVBQWUsZUFDckMsS0FBSyxTQUFTLFNBQVMsWUFBWSxLQUFLLFNBQVMsU0FBUyxhQUFhLEtBQUssU0FBUyxTQUFTO0FBQUEsTUFDbkc7QUFFQSxjQUFRLG1CQUFtQixtQkFBbUI7QUFBQSxRQUM1QyxDQUFDLFNBQ0MsTUFBTSxTQUFTLGVBQWUsb0JBQzlCLEtBQUssU0FBUyxTQUFTLGVBQWUsZUFDckMsS0FBSyxTQUFTLFNBQVMsWUFBWSxLQUFLLFNBQVMsU0FBUztBQUFBLE1BQy9EO0FBQUEsSUFDRjtBQUFBO0FBQUEsTUFFRSxpQkFBaUIsU0FBUyxlQUFlLFlBQ3pDLGlCQUFpQixJQUFJLFNBQVMsZUFBZSxjQUM3QyxpQkFBaUIsSUFBSSxTQUFTO0FBQUEsTUFDOUI7QUFDQSxjQUFRLDRCQUE0QjtBQUFBLElBQ3RDO0FBQUE7QUFBQSxNQUVFLGlCQUFpQixTQUFTLGVBQWUsWUFDekMsaUJBQWlCLElBQUksU0FBUyxlQUFlLGVBQzVDLGlCQUFpQixJQUFJLFNBQVMsWUFBWSxpQkFBaUIsSUFBSSxTQUFTO0FBQUEsTUFDekU7QUFDQSxjQUFRLDhCQUE4QjtBQUFBLElBQ3hDO0FBQUE7QUFBQSxNQUVFLGlCQUFpQixTQUFTLGVBQWUsWUFDekMsaUJBQWlCLElBQUksU0FBUyxlQUFlLGNBQzdDLGlCQUFpQixJQUFJLFNBQVM7QUFBQSxNQUM5QjtBQUNBLGNBQVEsK0JBQStCO0FBQ3ZDLGNBQVEsaUNBQWlDLGlCQUFpQixXQUN2RCxJQUFJLENBQUMsY0FBYyxVQUFVLFVBQVUsRUFDdkMsSUFBSSxTQUFTLEVBQ2I7QUFBQSxRQUNDLENBQUMsV0FDQyxRQUFRLFNBQVMsZUFBZSxvQkFDaEMsT0FBTyxTQUFTLFNBQVMsZUFBZSxjQUN4QyxPQUFPLFNBQVMsU0FBUyxTQUN6QixVQUFVLE1BQU0sR0FBRyxTQUFTLGVBQWU7QUFBQSxNQUMvQztBQUFBLElBQ0osV0FBVyxpQkFBaUIsU0FBUyxlQUFlLFVBQVU7QUFDNUQsWUFBTSxTQUFTLFVBQVUsZ0JBQWdCO0FBQ3pDLFVBQUksUUFBUSxTQUFTLGVBQWUsZUFBZTtBQUVqRCxjQUFNLFVBQVUsVUFBVSxNQUFNO0FBQ2hDLFlBQ0UsU0FBUyxTQUFTLGVBQWUsWUFDakMsUUFBUSxJQUFJLFNBQVMsZUFBZSxjQUNwQyxRQUFRLElBQUksU0FBUyxRQUNyQjtBQUNBLGtCQUFRLDRCQUE0QjtBQUFBLFFBQ3RDO0FBQ0EsWUFDRSxTQUFTLFNBQVMsZUFBZSxZQUNqQyxRQUFRLElBQUksU0FBUyxlQUFlLGVBQ25DLFFBQVEsSUFBSSxTQUFTLFlBQVksUUFBUSxJQUFJLFNBQVMsZUFDdkQ7QUFDQSxrQkFBUSw4QkFBOEI7QUFBQSxRQUN4QztBQUNBLFlBQ0UsU0FBUyxTQUFTLGVBQWUsWUFDakMsUUFBUSxJQUFJLFNBQVMsZUFBZSxlQUNuQyxRQUFRLElBQUksU0FBUyxZQUFZLFFBQVEsSUFBSSxTQUFTLFlBQ3ZEO0FBQ0Esa0JBQVEsK0JBQStCO0FBQUEsUUFDekM7QUFBQSxNQUNGO0FBQUEsSUFDRixPQUFPO0FBQ0wsVUFBSSwyQ0FBMkMsZ0JBQWdCO0FBQy9ELFlBQU0sSUFBSSxNQUFNLHdDQUF3QyxpQkFBaUIsSUFBSSxFQUFFO0FBQUEsSUFDakY7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -167,4 +167,4 @@ export {
167
167
  supertest_then_default as default,
168
168
  ruleId
169
169
  };
170
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L3N1cGVydGVzdC10aGVuLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQVFBLFNBQVMsVUFBVSxjQUFjO0FBR2pDLFNBQVMsZ0JBQWdCLG1CQUE2QjtBQUd0RCxTQUFTLHNCQUFzQixXQUFXLGlDQUFpQztBQUMzRSxPQUFPLHlCQUF5QjtBQUNoQyxTQUFTLHNCQUFzQjtBQUd4QixJQUFNLFNBQVM7QUFVdEIsU0FBUyxtQkFBbUIsTUFBK0IsU0FBaUMsWUFBd0I7QUFDbEgsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsRUFDRjtBQUVBLE1BQUk7QUFDSixNQUFJLE9BQU8sU0FBUyxlQUFlLGtCQUFrQjtBQUNuRCxZQUFRLGNBQWM7QUFDdEI7QUFBQSxFQUNGO0FBRUEsTUFBSSxPQUFPLFNBQVMsU0FBUyxlQUFlLFlBQVk7QUFDdEQsUUFBSSxPQUFPLFNBQVMsU0FBUyxVQUFVO0FBRXJDLFlBQU0sZ0JBQWdCLFVBQVUsTUFBTTtBQUN0QyxhQUFPLEdBQUcsaUJBQWlCLGNBQWMsU0FBUyxlQUFlLGNBQWM7QUFDL0UsY0FBUSxhQUFhLENBQUMsR0FBSSxRQUFRLGNBQWMsQ0FBQyxHQUFJLGNBQWMsU0FBa0M7QUFDckcsaUJBQVc7QUFBQSxJQUNiO0FBQUEsRUFDRixPQUFPO0FBQ0wsVUFBTSxJQUFJLE1BQU0sNERBQTRELFdBQVcsUUFBUSxNQUFNLENBQUMsR0FBRztBQUFBLEVBQzNHO0FBQ0EsTUFBSSxVQUFVO0FBQ1osdUJBQW1CLFVBQVUsU0FBUyxVQUFVO0FBQUEsRUFDbEQ7QUFDRjtBQUdBLFNBQVMseUJBQ1Asd0JBQ0EsWUFDQSxzQkFDQTtBQUNBLE1BQUk7QUFDSixRQUFNLHNCQUFnQyxDQUFDO0FBQ3ZDLGFBQVcsbUJBQW1CLHVCQUF1QixjQUFjLENBQUMsR0FBRztBQUNyRSxRQUFJLGdCQUFnQixXQUFXLEdBQUc7QUFDaEMsWUFBTSxDQUFDLGlCQUFpQixJQUFJO0FB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
170
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L3N1cGVydGVzdC10aGVuLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQVFBLFNBQVMsVUFBVSxjQUFjO0FBRWpDLFNBQVMsZ0JBQWdCLG1CQUE2QjtBQUd0RCxTQUFTLHNCQUFzQixXQUFXLGlDQUFpQztBQUMzRSxPQUFPLHlCQUF5QjtBQUNoQyxTQUFTLHNCQUFzQjtBQUV4QixJQUFNLFNBQVM7QUFVdEIsU0FBUyxtQkFBbUIsTUFBK0IsU0FBaUMsWUFBd0I7QUFDbEgsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsRUFDRjtBQUVBLE1BQUk7QUFDSixNQUFJLE9BQU8sU0FBUyxlQUFlLGtCQUFrQjtBQUNuRCxZQUFRLGNBQWM7QUFDdEI7QUFBQSxFQUNGO0FBRUEsTUFBSSxPQUFPLFNBQVMsU0FBUyxlQUFlLFlBQVk7QUFDdEQsUUFBSSxPQUFPLFNBQVMsU0FBUyxVQUFVO0FBRXJDLFlBQU0sZ0JBQWdCLFVBQVUsTUFBTTtBQUN0QyxhQUFPLEdBQUcsaUJBQWlCLGNBQWMsU0FBUyxlQUFlLGNBQWM7QUFDL0UsY0FBUSxhQUFhLENBQUMsR0FBSSxRQUFRLGNBQWMsQ0FBQyxHQUFJLGNBQWMsU0FBa0M7QUFDckcsaUJBQVc7QUFBQSxJQUNiO0FBQUEsRUFDRixPQUFPO0FBQ0wsVUFBTSxJQUFJLE1BQU0sNERBQTRELFdBQVcsUUFBUSxNQUFNLENBQUMsR0FBRztBQUFBLEVBQzNHO0FBQ0EsTUFBSSxVQUFVO0FBQ1osdUJBQW1CLFVBQVUsU0FBUyxVQUFVO0FBQUEsRUFDbEQ7QUFDRjtBQUdBLFNBQVMseUJBQ1Asd0JBQ0EsWUFDQSxzQkFDQTtBQUNBLE1BQUk7QUFDSixRQUFNLHNCQUFnQyxDQUFDO0FBQ3ZDLGFBQVcsbUJBQW1CLHVCQUF1QixjQUFjLENBQUMsR0FBRztBQUNyRSxRQUFJLGdCQUFnQixXQUFXLEdBQUc7QUFDaEMsWUFBTSxDQUFDLGlCQUFpQixJQUFJO0FB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
@@ -1,5 +1,6 @@
1
1
  import { TSESTree } from '@typescript-eslint/utils';
2
2
  export declare function getResponseBodyRetrievalText(responseVariableName: string): string;
3
+ export declare function getResponseStatusRetrievalText(responseVariableName: string): string;
3
4
  export declare function getResponseHeadersRetrievalText(responseVariableName: string): string;
4
5
  export declare function isInvalidResponseHeadersAccess(responseHeadersAccess: TSESTree.Node): boolean;
5
6
  export declare function hasAssertions(fixtureCall: TSESTree.Node): boolean;
@@ -12,5 +12,6 @@ export declare function analyzeResponseReferences(variableDeclaration: TSESTree.
12
12
  statusReferences: TSESTree.MemberExpression[];
13
13
  destructuringBodyVariable?: Variable | TSESTree.ObjectPattern;
14
14
  destructuringHeadersVariable?: Variable | TSESTree.ObjectPattern;
15
+ destructuringStatusVariable?: Variable | TSESTree.ObjectPattern;
15
16
  destructuringHeadersReferences?: TSESTree.MemberExpression[] | undefined;
16
17
  };
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/eslint-plugin","version":"7.6.0-PR.75-c06b","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 .","lint:fix":"eslint --max-warnings 0 --fix .","prepare":"","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"dependencies":{"@typescript-eslint/type-utils":"^8.15.0","@typescript-eslint/utils":"^8.15.0","debug":"^4.3.7","ts-api-utils":"^1.4.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^5.5.1","@checkdigit/typescript-config":"^8.0.0","@eslint/js":"^9.15.0","@types/debug":"^4.1.12","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@typescript-eslint/parser":"^8.15.0","@typescript-eslint/rule-tester":"^8.15.0","eslint":"^9.15.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.6.3","eslint-plugin-eslint-plugin":"^6.3.2","eslint-plugin-import":"^2.31.0","eslint-plugin-no-only-tests":"^3.3.0","eslint-plugin-no-secrets":"^1.1.2","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"1.0.4","http-status-codes":"^2.3.0","rimraf":"^6.0.1","typescript-eslint":"^8.15.0"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=20.17"}}
1
+ {"name":"@checkdigit/eslint-plugin","version":"7.6.0-PR.75-c175","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 .","lint:fix":"eslint --max-warnings 0 --fix .","prepare":"","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"dependencies":{"@typescript-eslint/type-utils":"^8.15.0","@typescript-eslint/utils":"^8.15.0","debug":"^4.3.7","ts-api-utils":"^1.4.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^5.5.1","@checkdigit/typescript-config":"^8.0.0","@eslint/js":"^9.15.0","@types/debug":"^4.1.12","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@typescript-eslint/parser":"^8.15.0","@typescript-eslint/rule-tester":"^8.15.0","eslint":"^9.15.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.6.3","eslint-plugin-eslint-plugin":"^6.3.2","eslint-plugin-import":"^2.31.0","eslint-plugin-no-only-tests":"^3.3.0","eslint-plugin-no-secrets":"^1.1.2","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"1.0.4","http-status-codes":"^2.3.0","rimraf":"^6.0.1","typescript-eslint":"^8.15.0"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=20.17"}}
@@ -8,6 +8,10 @@ export function getResponseBodyRetrievalText(responseVariableName: string) {
8
8
  return `await ${responseVariableName}.json()`;
9
9
  }
10
10
 
11
+ export function getResponseStatusRetrievalText(responseVariableName: string) {
12
+ return `${responseVariableName}.status`;
13
+ }
14
+
11
15
  export function getResponseHeadersRetrievalText(responseVariableName: string) {
12
16
  return `${responseVariableName}.headers`;
13
17
  }
@@ -23,7 +23,12 @@ import getDocumentationUrl from '../get-documentation-url';
23
23
  import { getIndentation } from '../library/format';
24
24
  import { isValidPropertyName } from '../library/variable';
25
25
  import { analyzeResponseReferences } from './response-reference';
26
- import { getResponseBodyRetrievalText, getResponseHeadersRetrievalText, hasAssertions } from './fetch';
26
+ import {
27
+ getResponseBodyRetrievalText,
28
+ getResponseHeadersRetrievalText,
29
+ getResponseStatusRetrievalText,
30
+ hasAssertions,
31
+ } from './fetch';
27
32
  import { replaceEndpointUrlPrefixWithBasePath } from './url';
28
33
 
29
34
  export const ruleId = 'no-fixture';
@@ -44,6 +49,7 @@ interface FixtureCallInformation {
44
49
  assertions?: TSESTree.Expression[][];
45
50
  inlineStatementNode?: TSESTree.Node;
46
51
  inlineBodyReference?: TSESTree.MemberExpression;
52
+ inlineStatusReference?: TSESTree.MemberExpression;
47
53
  inlineHeadersReference?: TSESTree.MemberExpression;
48
54
  }
49
55
 
@@ -77,6 +83,12 @@ function analyzeFixtureCall(call: TSESTree.CallExpression, results: FixtureCallI
77
83
  if (awaitParent.property.type === AST_NODE_TYPES.Identifier && awaitParent.property.name === 'body') {
78
84
  results.inlineBodyReference = awaitParent;
79
85
  }
86
+ if (
87
+ awaitParent.property.type === AST_NODE_TYPES.Identifier &&
88
+ (awaitParent.property.name === 'status' || awaitParent.property.name === 'statusCode')
89
+ ) {
90
+ results.inlineStatusReference = awaitParent;
91
+ }
80
92
  if (
81
93
  awaitParent.property.type === AST_NODE_TYPES.Identifier &&
82
94
  (awaitParent.property.name === 'header' || awaitParent.property.name === 'headers')
@@ -311,6 +323,7 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
311
323
  headersReferences: responseHeadersReferences,
312
324
  statusReferences: responseStatusReferences,
313
325
  destructuringBodyVariable: destructuringResponseBodyVariable,
326
+ destructuringStatusVariable: destructuringResponseStatusVariable,
314
327
  destructuringHeadersVariable: destructuringResponseHeadersVariable,
315
328
  } = analyzeResponseReferences(fixtureCallInformation.variableDeclaration, scopeManager);
316
329
 
@@ -358,6 +371,11 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
358
371
  (responseBodyReferences.length > 0 && !responseBodyReferences.some(isResponseBodyRedefinition));
359
372
  const redefineResponseBodyVariableName = `${responseVariableNameToUse}Body`;
360
373
 
374
+ const isResponseStatusVariableRedefinitionNeeded =
375
+ destructuringResponseStatusVariable !== undefined ||
376
+ fixtureCallInformation.inlineStatusReference !== undefined;
377
+ const redefineResponseStatusVariableName = `${responseVariableNameToUse}Status`;
378
+
361
379
  const isResponseHeadersVariableRedefinitionNeeded =
362
380
  (destructuringResponseHeadersVariable !== undefined &&
363
381
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -370,6 +388,7 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
370
388
  responseVariable === undefined &&
371
389
  fixtureCallInformation.assertions !== undefined) ||
372
390
  isResponseBodyVariableRedefinitionNeeded ||
391
+ isResponseStatusVariableRedefinitionNeeded ||
373
392
  isResponseHeadersVariableRedefinitionNeeded;
374
393
 
375
394
  const responseBodyHeadersVariableRedefineLines = isResponseVariableRedefinitionNeeded
@@ -386,6 +405,17 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
386
405
  ]
387
406
  : []),
388
407
  // eslint-disable-next-line no-nested-ternary
408
+ ...(destructuringResponseStatusVariable
409
+ ? [
410
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
411
+ `${fixtureCallInformation.variableDeclaration?.kind ?? 'const'} ${(destructuringResponseStatusVariable as TSESTree.ObjectPattern).type === AST_NODE_TYPES.ObjectPattern ? sourceCode.getText(destructuringResponseStatusVariable as TSESTree.ObjectPattern) : (destructuringResponseStatusVariable as Variable).name} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`,
412
+ ]
413
+ : isResponseStatusVariableRedefinitionNeeded
414
+ ? [
415
+ `const ${redefineResponseStatusVariableName} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`,
416
+ ]
417
+ : []),
418
+ // eslint-disable-next-line no-nested-ternary
389
419
  ...(destructuringResponseHeadersVariable
390
420
  ? // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
391
421
  (destructuringResponseHeadersVariable as TSESTree.ObjectPattern).type ===
@@ -22,7 +22,7 @@ import {
22
22
  import getDocumentationUrl from '../get-documentation-url';
23
23
  import { getIndentation } from '../library/format';
24
24
  import { analyzeResponseReferences } from './response-reference';
25
- import { getResponseBodyRetrievalText, getResponseHeadersRetrievalText } from './fetch';
25
+ import { getResponseBodyRetrievalText, getResponseHeadersRetrievalText, getResponseStatusRetrievalText } from './fetch';
26
26
 
27
27
  export const ruleId = 'no-supertest';
28
28
 
@@ -42,6 +42,7 @@ interface FixtureCallInformation {
42
42
  assertions?: TSESTree.Expression[][];
43
43
  inlineStatementNode?: TSESTree.Node;
44
44
  inlineBodyReference?: TSESTree.MemberExpression;
45
+ inlineStatusReference?: TSESTree.MemberExpression;
45
46
  inlineHeadersReference?: TSESTree.MemberExpression;
46
47
  }
47
48
 
@@ -75,6 +76,12 @@ function analyzeFixtureCall(call: TSESTree.CallExpression, results: FixtureCallI
75
76
  if (awaitParent.property.type === AST_NODE_TYPES.Identifier && awaitParent.property.name === 'body') {
76
77
  results.inlineBodyReference = awaitParent;
77
78
  }
79
+ if (
80
+ awaitParent.property.type === AST_NODE_TYPES.Identifier &&
81
+ (awaitParent.property.name === 'status' || awaitParent.property.name === 'statusCode')
82
+ ) {
83
+ results.inlineStatusReference = awaitParent;
84
+ }
78
85
  if (
79
86
  awaitParent.property.type === AST_NODE_TYPES.Identifier &&
80
87
  (awaitParent.property.name === 'header' || awaitParent.property.name === 'headers')
@@ -315,6 +322,7 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
315
322
  statusReferences: responseStatusReferences,
316
323
  destructuringBodyVariable: destructuringResponseBodyVariable,
317
324
  destructuringHeadersVariable: destructuringResponseHeadersVariable,
325
+ destructuringStatusVariable: destructuringResponseStatusVariable,
318
326
  } = analyzeResponseReferences(fixtureCallInformation.variableDeclaration, scopeManager);
319
327
 
320
328
  const responseVariableNameToUse = getResponseVariableNameToUse(
@@ -329,6 +337,11 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
329
337
  (responseBodyReferences.length > 0 && !responseBodyReferences.some(isResponseBodyRedefinition));
330
338
  const redefineResponseBodyVariableName = `${responseVariableNameToUse}Body`;
331
339
 
340
+ const isResponseStatusVariableRedefinitionNeeded =
341
+ destructuringResponseStatusVariable !== undefined ||
342
+ fixtureCallInformation.inlineStatusReference !== undefined;
343
+ const redefineResponseStatusVariableName = `${responseVariableNameToUse}Status`;
344
+
332
345
  const isResponseHeadersVariableRedefinitionNeeded =
333
346
  (destructuringResponseHeadersVariable !== undefined &&
334
347
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -341,6 +354,7 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
341
354
  responseVariable === undefined &&
342
355
  fixtureCallInformation.assertions !== undefined) ||
343
356
  isResponseBodyVariableRedefinitionNeeded ||
357
+ isResponseStatusVariableRedefinitionNeeded ||
344
358
  isResponseHeadersVariableRedefinitionNeeded;
345
359
 
346
360
  const responseBodyHeadersVariableRedefineLines = isResponseVariableRedefinitionNeeded
@@ -357,6 +371,17 @@ const rule: ESLintUtils.RuleModule<'unknownError' | 'preferNativeFetch'> = creat
357
371
  ]
358
372
  : []),
359
373
  // eslint-disable-next-line no-nested-ternary
374
+ ...(destructuringResponseStatusVariable
375
+ ? [
376
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
377
+ `${fixtureCallInformation.variableDeclaration?.kind ?? 'const'} ${(destructuringResponseStatusVariable as TSESTree.ObjectPattern).type === AST_NODE_TYPES.ObjectPattern ? sourceCode.getText(destructuringResponseStatusVariable as TSESTree.ObjectPattern) : (destructuringResponseStatusVariable as Variable).name} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`,
378
+ ]
379
+ : isResponseStatusVariableRedefinitionNeeded
380
+ ? [
381
+ `const ${redefineResponseStatusVariableName} = ${getResponseStatusRetrievalText(responseVariableNameToUse)}`,
382
+ ]
383
+ : []),
384
+ // eslint-disable-next-line no-nested-ternary
360
385
  ...(destructuringResponseHeadersVariable
361
386
  ? // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
362
387
  (destructuringResponseHeadersVariable as TSESTree.ObjectPattern).type ===
@@ -21,6 +21,7 @@ const log = debug('eslint-plugin:response-reference');
21
21
  * the implementation is for fixture API, but it can be used for fetch API as well since the tree structure is similar
22
22
  * @param variableDeclaration - variable declaration node
23
23
  */
24
+ // eslint-disable-next-line sonarjs/cognitive-complexity
24
25
  export function analyzeResponseReferences(
25
26
  variableDeclaration: TSESTree.VariableDeclaration | undefined,
26
27
  scopeManager: ScopeManager,
@@ -31,6 +32,7 @@ export function analyzeResponseReferences(
31
32
  statusReferences: TSESTree.MemberExpression[];
32
33
  destructuringBodyVariable?: Variable | TSESTree.ObjectPattern;
33
34
  destructuringHeadersVariable?: Variable | TSESTree.ObjectPattern;
35
+ destructuringStatusVariable?: Variable | TSESTree.ObjectPattern;
34
36
  destructuringHeadersReferences?: TSESTree.MemberExpression[] | undefined;
35
37
  } {
36
38
  const results: {
@@ -40,6 +42,7 @@ export function analyzeResponseReferences(
40
42
  statusReferences: TSESTree.MemberExpression[];
41
43
  destructuringBodyVariable?: Variable | TSESTree.ObjectPattern;
42
44
  destructuringHeadersVariable?: Variable | TSESTree.ObjectPattern;
45
+ destructuringStatusVariable?: Variable | TSESTree.ObjectPattern;
43
46
  destructuringHeadersReferences?: TSESTree.MemberExpression[] | undefined;
44
47
  } = {
45
48
  bodyReferences: [],
@@ -90,6 +93,13 @@ export function analyzeResponseReferences(
90
93
  identifierParent.key.name === 'body'
91
94
  ) {
92
95
  results.destructuringBodyVariable = responseVariable;
96
+ } else if (
97
+ // body reference through destruction/renaming, e.g. "const { body } = ..."
98
+ identifierParent.type === AST_NODE_TYPES.Property &&
99
+ identifierParent.key.type === AST_NODE_TYPES.Identifier &&
100
+ (identifierParent.key.name === 'status' || identifierParent.key.name === 'statusCode')
101
+ ) {
102
+ results.destructuringStatusVariable = responseVariable;
93
103
  } else if (
94
104
  // header reference through destruction/renaming, e.g. "const { headers } = ..."
95
105
  identifierParent.type === AST_NODE_TYPES.Property &&
@@ -119,6 +129,13 @@ export function analyzeResponseReferences(
119
129
  ) {
120
130
  results.destructuringBodyVariable = parent;
121
131
  }
132
+ if (
133
+ parent2?.type === AST_NODE_TYPES.Property &&
134
+ parent2.key.type === AST_NODE_TYPES.Identifier &&
135
+ (parent2.key.name === 'status' || parent2.key.name === 'statusCode')
136
+ ) {
137
+ results.destructuringStatusVariable = parent;
138
+ }
122
139
  if (
123
140
  parent2?.type === AST_NODE_TYPES.Property &&
124
141
  parent2.key.type === AST_NODE_TYPES.Identifier &&
@@ -8,14 +8,12 @@
8
8
 
9
9
  import { strict as assert } from 'node:assert';
10
10
 
11
- // import { ScopeManager, Variable } from '@typescript-eslint/scope-manager';
12
11
  import { AST_NODE_TYPES, ESLintUtils, TSESTree } from '@typescript-eslint/utils';
13
12
  import type { SourceCode } from '@typescript-eslint/utils/ts-eslint';
14
13
 
15
14
  import { getEnclosingFunction, getParent, isUsedInArrayOrAsArgument } from '../library/ts-tree';
16
15
  import getDocumentationUrl from '../get-documentation-url';
17
16
  import { getIndentation } from '../library/format';
18
- // import { isInvalidResponseHeadersAccess } from './fetch';
19
17
 
20
18
  export const ruleId = 'supertest-then';
21
19
 
@@ -128,50 +126,6 @@ function createResponseAssertions(
128
126
  };
129
127
  }
130
128
 
131
- // function getResponseHeadersAccesses(responseVariables: Variable[], scopeManager: ScopeManager, sourceCode: SourceCode) {
132
- // const responseHeadersAccesses: TSESTree.MemberExpression[] = [];
133
- // for (const responseVariable of responseVariables) {
134
- // for (const responseReference of responseVariable.references) {
135
- // const responseAccess = getParent(responseReference.identifier);
136
- // if (!responseAccess || responseAccess.type !== AST_NODE_TYPES.MemberExpression) {
137
- // continue;
138
- // }
139
-
140
- // const responseAccessParent = getParent(responseAccess);
141
- // if (!responseAccessParent) {
142
- // continue;
143
- // }
144
-
145
- // if (
146
- // responseAccessParent.type === AST_NODE_TYPES.CallExpression &&
147
- // responseAccessParent.arguments[0]?.type === AST_NODE_TYPES.ArrowFunctionExpression
148
- // ) {
149
- // // map-like operation against responses, e.g. responses.map((response) => response.headers.etag)
150
- // responseHeadersAccesses.push(
151
- // ...getResponseHeadersAccesses(
152
- // scopeManager.getDeclaredVariables(responseAccessParent.arguments[0]),
153
- // scopeManager,
154
- // sourceCode,
155
- // ),
156
- // );
157
- // continue;
158
- // }
159
-
160
- // if (
161
- // responseAccess.computed &&
162
- // responseAccess.property.type === AST_NODE_TYPES.Literal &&
163
- // responseAccessParent.type === AST_NODE_TYPES.MemberExpression
164
- // ) {
165
- // // header access through indexed responses array, e.g. responses[0].headers, responses[1].get(...), etc.
166
- // responseHeadersAccesses.push(responseAccessParent);
167
- // } else {
168
- // responseHeadersAccesses.push(responseAccess);
169
- // }
170
- // }
171
- // }
172
- // return responseHeadersAccesses;
173
- // }
174
-
175
129
  const createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
176
130
  const rule: ESLintUtils.RuleModule<
177
131
  'unknownError' | 'preferNativeFetch'
@@ -256,52 +210,6 @@ const rule: ESLintUtils.RuleModule<
256
210
  return fixer.replaceText(fixtureCallInformation.fixtureNode, replacementText);
257
211
  },
258
212
  });
259
-
260
- // const responsesVariable = getEnclosingStatement(fixtureCallInformation.fixtureNode);
261
- // if (!responsesVariable) {
262
- // return;
263
- // }
264
-
265
- // const responseVariableReferences = scopeManager.getDeclaredVariables(responsesVariable);
266
- // const responseHeadersAccesses = getResponseHeadersAccesses(
267
- // responseVariableReferences,
268
- // scopeManager,
269
- // sourceCode,
270
- // );
271
- // for (const responseHeadersAccess of responseHeadersAccesses) {
272
- // if (isInvalidResponseHeadersAccess(responseHeadersAccess)) {
273
- // const headerAccess = getParent(responseHeadersAccess);
274
- // if (headerAccess?.type === AST_NODE_TYPES.MemberExpression) {
275
- // const headerNameNode = headerAccess.property;
276
- // const headerName = headerAccess.computed
277
- // ? sourceCode.getText(headerNameNode)
278
- // : `'${sourceCode.getText(headerNameNode)}'`;
279
- // const headerAccessReplacementText = `${sourceCode.getText(headerAccess.object)}.get(${headerName})`;
280
-
281
- // context.report({
282
- // node: headerAccess,
283
- // messageId: 'shouldUseHeaderGetter',
284
- // fix(fixer) {
285
- // return fixer.replaceText(headerAccess, headerAccessReplacementText);
286
- // },
287
- // });
288
- // } else if (
289
- // headerAccess?.type === AST_NODE_TYPES.CallExpression &&
290
- // responseHeadersAccess.property.type === AST_NODE_TYPES.Identifier &&
291
- // responseHeadersAccess.property.name === 'get'
292
- // ) {
293
- // const headerAccessReplacementText = `${sourceCode.getText(responseHeadersAccess.object)}.headers.get(${sourceCode.getText(headerAccess.arguments[0])})`;
294
-
295
- // context.report({
296
- // node: headerAccess,
297
- // messageId: 'shouldUseHeaderGetter',
298
- // fix(fixer) {
299
- // return fixer.replaceText(headerAccess, headerAccessReplacementText);
300
- // },
301
- // });
302
- // }
303
- // }
304
- // }
305
213
  } catch (error) {
306
214
  // eslint-disable-next-line no-console
307
215
  console.error(`Failed to apply ${ruleId} rule for file "${context.filename}":`, error);