@checkdigit/eslint-plugin 7.3.0-PR.75-ad6f → 7.3.0-PR.75-1d0d
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,11 @@
|
|
|
1
1
|
// src/agent/agent-test-wiring.ts
|
|
2
2
|
import { strict as assert } from "node:assert";
|
|
3
3
|
import { AST_TOKEN_TYPES, ESLintUtils, TSESTree } from "@typescript-eslint/utils";
|
|
4
|
+
import debug from "debug";
|
|
4
5
|
import getDocumentationUrl from "../get-documentation-url.mjs";
|
|
5
6
|
var ruleId = "agent-test-wiring";
|
|
6
7
|
var createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
8
|
+
var log = debug("eslint-plugin:agent:agent-test-wiring");
|
|
7
9
|
var STATEMENT_FIXTURE_RESET = "fixture.reset()";
|
|
8
10
|
var STATEMENT_FIXTURE_RESET_AWAITED = `await ${STATEMENT_FIXTURE_RESET};`;
|
|
9
11
|
var STATEMENT_AGENT_DECLARATION = "let agent: Agent;";
|
|
@@ -27,6 +29,7 @@ var rule = createRule({
|
|
|
27
29
|
},
|
|
28
30
|
defaultOptions: [],
|
|
29
31
|
create(context) {
|
|
32
|
+
log("Processing file:", context.filename);
|
|
30
33
|
const sourceCode = context.sourceCode;
|
|
31
34
|
const importDeclarations = /* @__PURE__ */ new Map();
|
|
32
35
|
let isFixtureUsed = false;
|
|
@@ -77,10 +80,13 @@ var rule = createRule({
|
|
|
77
80
|
import createAgent, { type Agent } from '@checkdigit/agent';`
|
|
78
81
|
);
|
|
79
82
|
}
|
|
80
|
-
const
|
|
81
|
-
|
|
83
|
+
const pathLets = context.filename.split("/");
|
|
84
|
+
const currentFileIndex = pathLets.length - 1;
|
|
85
|
+
const pluginFolderIndex = pathLets.lastIndexOf("src") + 1;
|
|
86
|
+
const fixturePluginImportPath = `${"../".repeat(currentFileIndex - pluginFolderIndex)}plugin/fixture.test`;
|
|
87
|
+
if (!importDeclarations.get(fixturePluginImportPath)) {
|
|
82
88
|
fixturePluginImportFixer = (fixer) => fixer.insertTextAfter(lastImportDeclaration, `
|
|
83
|
-
import fixturePlugin from '
|
|
89
|
+
import fixturePlugin from '${fixturePluginImportPath}';`);
|
|
84
90
|
}
|
|
85
91
|
const beforeAllArgument = beforeAll.arguments[0];
|
|
86
92
|
assert.ok(beforeAllArgument !== void 0);
|
|
@@ -187,4 +193,4 @@ export {
|
|
|
187
193
|
agent_test_wiring_default as default,
|
|
188
194
|
ruleId
|
|
189
195
|
};
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FnZW50L2FnZW50LXRlc3Qtd2lyaW5nLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQVFBLFNBQVMsVUFBVSxjQUFjO0FBRWpDLFNBQVMsaUJBQWlCLGFBQWEsZ0JBQWdCO0FBRXZELE9BQU8sV0FBVztBQUVsQixPQUFPLHlCQUF5QjtBQUV6QixJQUFNLFNBQVM7QUFDdEIsSUFBTSxhQUFhLFlBQVksWUFBWSxDQUFDLFNBQVMsb0JBQW9CLElBQUksQ0FBQztBQUM5RSxJQUFNLE1BQU0sTUFBTSx1Q0FBdUM7QUFFekQsSUFBTSwwQkFBMEI7QUFDaEMsSUFBTSxrQ0FBa0MsU0FBUyx1QkFBdUI7QUFDeEUsSUFBTSw4QkFBOEI7QUFDcEMsSUFBTSwyQkFBMkI7QUFDakMsSUFBTSwyQkFBMkI7QUFDakMsSUFBTSx5QkFBeUI7QUFDL0IsSUFBTSwwQkFBMEI7QUFFaEMsSUFBTSxPQUFvRSxXQUFXO0FBQUEsRUFDbkYsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLGtCQUFrQjtBQUFBLE1BQ2xCLGNBQWM7QUFBQSxJQUNoQjtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsUUFBUSxDQUFDO0FBQUEsRUFDWDtBQUFBLEVBQ0EsZ0JBQWdCLENBQUM7QUFBQSxFQUNqQixPQUFPLFNBQVM7QUFDZCxRQUFJLG9CQUFvQixRQUFRLFFBQVE7QUFDeEMsVUFBTSxhQUFhLFFBQVE7QUFDM0IsVUFBTSxxQkFBcUIsb0JBQUksSUFBd0M7QUFDdkUsUUFBSSxnQkFBZ0I7QUFDcEIsUUFBSTtBQUNKLFFBQUk7QUFFSixXQUFPO0FBQUEsTUFDTCxrQkFBa0IsbUJBQW1CO0FBQ25DLGNBQU0sYUFBYSxrQkFBa0IsT0FBTztBQUM1QywyQkFBbUIsSUFBSSxZQUFZLGlCQUFpQjtBQUNwRCxZQUNFLGVBQWUseUJBQ2Ysa0JBQWtC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
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/eslint-plugin","version":"7.3.0-PR.75-
|
|
1
|
+
{"name":"@checkdigit/eslint-plugin","version":"7.3.0-PR.75-1d0d","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.10.0","@typescript-eslint/utils":"8.10.0","debug":"^4.3.7","ts-api-utils":"^1.3.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^5.5.1","@checkdigit/typescript-config":"^8.0.0","@eslint/js":"^9.13.0","@types/debug":"^4.1.12","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@typescript-eslint/parser":"8.10.0","@typescript-eslint/rule-tester":"8.10.0","eslint":"^9.13.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.6.3","eslint-plugin-eslint-plugin":"^6.2.0","eslint-plugin-import":"^2.31.0","eslint-plugin-no-only-tests":"^3.3.0","eslint-plugin-no-secrets":"^1.0.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.10.0"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=20.17"}}
|
|
@@ -10,12 +10,13 @@ import { strict as assert } from 'node:assert';
|
|
|
10
10
|
|
|
11
11
|
import { AST_TOKEN_TYPES, ESLintUtils, TSESTree } from '@typescript-eslint/utils';
|
|
12
12
|
import type { RuleFix, RuleFixer } from '@typescript-eslint/utils/ts-eslint';
|
|
13
|
+
import debug from 'debug';
|
|
13
14
|
|
|
14
15
|
import getDocumentationUrl from '../get-documentation-url';
|
|
15
16
|
|
|
16
17
|
export const ruleId = 'agent-test-wiring';
|
|
17
|
-
|
|
18
18
|
const createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
19
|
+
const log = debug('eslint-plugin:agent:agent-test-wiring');
|
|
19
20
|
|
|
20
21
|
const STATEMENT_FIXTURE_RESET = 'fixture.reset()';
|
|
21
22
|
const STATEMENT_FIXTURE_RESET_AWAITED = `await ${STATEMENT_FIXTURE_RESET};`;
|
|
@@ -41,6 +42,7 @@ const rule: ESLintUtils.RuleModule<'updateTestWiring' | 'unknownError'> = create
|
|
|
41
42
|
},
|
|
42
43
|
defaultOptions: [],
|
|
43
44
|
create(context) {
|
|
45
|
+
log('Processing file:', context.filename);
|
|
44
46
|
const sourceCode = context.sourceCode;
|
|
45
47
|
const importDeclarations = new Map<string, TSESTree.ImportDeclaration>();
|
|
46
48
|
let isFixtureUsed = false;
|
|
@@ -85,7 +87,7 @@ const rule: ESLintUtils.RuleModule<'updateTestWiring' | 'unknownError'> = create
|
|
|
85
87
|
const lastImportDeclaration = [...importDeclarations.values()].at(-1);
|
|
86
88
|
assert.ok(lastImportDeclaration);
|
|
87
89
|
|
|
88
|
-
//
|
|
90
|
+
// make sure that afterAll is imported from jest
|
|
89
91
|
const jestImportDeclaration = importDeclarations.get('@jest/globals');
|
|
90
92
|
if (
|
|
91
93
|
jestImportDeclaration &&
|
|
@@ -101,7 +103,7 @@ const rule: ESLintUtils.RuleModule<'updateTestWiring' | 'unknownError'> = create
|
|
|
101
103
|
jestImportFixer = (fixer: RuleFixer) => fixer.insertTextBefore(firstImportSpecifier, 'afterAll, ');
|
|
102
104
|
}
|
|
103
105
|
|
|
104
|
-
//
|
|
106
|
+
// make sure that agent is imported
|
|
105
107
|
const agentImportDeclaration = importDeclarations.get('@checkdigit/agent');
|
|
106
108
|
if (!agentImportDeclaration) {
|
|
107
109
|
agentImportFixer = (fixer: RuleFixer) =>
|
|
@@ -111,11 +113,15 @@ const rule: ESLintUtils.RuleModule<'updateTestWiring' | 'unknownError'> = create
|
|
|
111
113
|
);
|
|
112
114
|
}
|
|
113
115
|
|
|
114
|
-
//
|
|
115
|
-
const
|
|
116
|
-
|
|
116
|
+
// make sure that fixture plugin is imported
|
|
117
|
+
const pathLets = context.filename.split('/');
|
|
118
|
+
const currentFileIndex = pathLets.length - 1;
|
|
119
|
+
const pluginFolderIndex = pathLets.lastIndexOf('src') + 1;
|
|
120
|
+
// it should be safe to assume that the test code is always at least one level deeper than the plugin folder
|
|
121
|
+
const fixturePluginImportPath = `${'../'.repeat(currentFileIndex - pluginFolderIndex)}plugin/fixture.test`;
|
|
122
|
+
if (!importDeclarations.get(fixturePluginImportPath)) {
|
|
117
123
|
fixturePluginImportFixer = (fixer: RuleFixer) =>
|
|
118
|
-
fixer.insertTextAfter(lastImportDeclaration, `\nimport fixturePlugin from '
|
|
124
|
+
fixer.insertTextAfter(lastImportDeclaration, `\nimport fixturePlugin from '${fixturePluginImportPath}';`);
|
|
119
125
|
}
|
|
120
126
|
|
|
121
127
|
// inject agent declaration and initialization to `beforeAll` block
|