Skip to content

Commit 8d62fb0

Browse files
committed
--wip-- [skip ci]
1 parent ecc30ac commit 8d62fb0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+155
-174
lines changed

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
]
9696
},
9797
"dependencies": {
98-
"@typescript-eslint/utils": "^5.10.0"
98+
"@typescript-eslint/utils": "6"
9999
},
100100
"devDependencies": {
101101
"@babel/cli": "^7.4.4",
@@ -111,8 +111,9 @@
111111
"@types/eslint": "^8.4.6",
112112
"@types/jest": "^29.0.0",
113113
"@types/node": "^14.18.26",
114-
"@typescript-eslint/eslint-plugin": "^5.0.0",
115-
"@typescript-eslint/parser": "^5.0.0",
114+
"@typescript-eslint/eslint-plugin": "6",
115+
"@typescript-eslint/parser": "6",
116+
"@typescript-eslint/rule-tester": "^6.0.0",
116117
"babel-jest": "^29.0.0",
117118
"babel-plugin-replace-ts-export-assignment": "^0.0.2",
118119
"dedent": "^1.5.0",

src/index.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,6 @@ type RuleModule = TSESLint.RuleModule<string, unknown[]> & {
88
meta: Required<Pick<TSESLint.RuleMetaData<string>, 'docs'>>;
99
};
1010

11-
// v5 of `@typescript-eslint/experimental-utils` removed this
12-
declare module '@typescript-eslint/utils/dist/ts-eslint/Rule' {
13-
export interface RuleMetaDataDocs {
14-
category: 'Best Practices' | 'Possible Errors';
15-
}
16-
}
17-
1811
// copied from https://github.com/babel/babel/blob/d8da63c929f2d28c401571e2a43166678c555bc4/packages/babel-helpers/src/helpers.js#L602-L606
1912
/* istanbul ignore next */
2013
const interopRequireDefault = (obj: any): { default: any } =>

src/rules/__tests__/unbound-method.test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ function getFixturesRootDir(): string {
99

1010
const rootPath = getFixturesRootDir();
1111

12-
const ruleTester = new ESLintUtils.RuleTester({
12+
const RuleTester =
13+
ESLintUtils.RuleTester ??
14+
// eslint-disable-next-line @typescript-eslint/no-require-imports
15+
require('@typescript-eslint/rule-tester').RuleTester;
16+
17+
const ruleTester = new RuleTester({
1318
parser: '@typescript-eslint/parser',
1419
parserOptions: {
1520
sourceType: 'module',
@@ -164,7 +169,7 @@ describe('error handling', () => {
164169
});
165170

166171
describe('when @typescript-eslint/eslint-plugin is not available', () => {
167-
const ruleTester = new ESLintUtils.RuleTester({
172+
const ruleTester = new RuleTester({
168173
parser: '@typescript-eslint/parser',
169174
parserOptions: {
170175
sourceType: 'module',

src/rules/consistent-test-it.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ export default createRule<
3535
name: __filename,
3636
meta: {
3737
docs: {
38-
category: 'Best Practices',
3938
description: 'Enforce `test` and `it` usage conventions',
40-
recommended: false,
4139
},
4240
fixable: 'code',
4341
messages: {
@@ -51,9 +49,11 @@ export default createRule<
5149
type: 'object',
5250
properties: {
5351
fn: {
52+
type: 'string',
5453
enum: [TestCaseName.it, TestCaseName.test],
5554
},
5655
withinDescribe: {
56+
type: 'string',
5757
enum: [TestCaseName.it, TestCaseName.test],
5858
},
5959
},

src/rules/expect-expect.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ export default createRule<
5252
name: __filename,
5353
meta: {
5454
docs: {
55-
category: 'Best Practices',
5655
description: 'Enforce assertion to be made in a test body',
57-
recommended: 'warn',
5856
},
5957
messages: {
6058
noAssertions: 'Test has no assertions',

src/rules/max-expects.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ export default createRule({
1010
name: __filename,
1111
meta: {
1212
docs: {
13-
category: 'Best Practices',
1413
description: 'Enforces a maximum number assertion calls in a test body',
15-
recommended: false,
1614
},
1715
messages: {
1816
exceededMaxAssertion:

src/rules/max-nested-describe.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ export default createRule({
55
name: __filename,
66
meta: {
77
docs: {
8-
category: 'Best Practices',
98
description: 'Enforces a maximum depth to nested describe calls',
10-
recommended: false,
119
},
1210
messages: {
1311
exceededMaxDepth:

src/rules/no-alias-methods.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ export default createRule({
99
name: __filename,
1010
meta: {
1111
docs: {
12-
category: 'Best Practices',
1312
description: 'Disallow alias methods',
14-
recommended: 'error',
1513
},
1614
messages: {
1715
replaceAlias: `Replace {{ alias }}() with its canonical name of {{ canonical }}()`,

src/rules/no-commented-out-tests.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ export default createRule({
1111
name: __filename,
1212
meta: {
1313
docs: {
14-
category: 'Best Practices',
1514
description: 'Disallow commented out tests',
16-
recommended: 'warn',
1715
},
1816
messages: {
1917
commentedTests: 'Some tests seem to be commented',

src/rules/no-conditional-expect.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ export default createRule({
1919
meta: {
2020
docs: {
2121
description: 'Disallow calling `expect` conditionally',
22-
category: 'Best Practices',
23-
recommended: 'error',
2422
},
2523
messages: {
2624
conditionalExpect: 'Avoid calling `expect` conditionally`',

src/rules/no-conditional-in-test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ export default createRule({
66
meta: {
77
docs: {
88
description: 'Disallow conditional logic in tests',
9-
category: 'Best Practices',
10-
recommended: false,
119
},
1210
messages: {
1311
conditionalInTest: 'Avoid having conditionals in tests',

src/rules/no-deprecated-functions.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@ export default createRule({
2828
name: __filename,
2929
meta: {
3030
docs: {
31-
category: 'Best Practices',
3231
description: 'Disallow use of deprecated functions',
33-
recommended: 'error',
3432
},
3533
messages: {
3634
deprecatedFunction:

src/rules/no-disabled-tests.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ export default createRule({
99
name: __filename,
1010
meta: {
1111
docs: {
12-
category: 'Best Practices',
1312
description: 'Disallow disabled tests',
14-
recommended: 'warn',
1513
},
1614
messages: {
1715
missingFunction: 'Test is missing function argument',

src/rules/no-done-callback.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ export default createRule({
3131
name: __filename,
3232
meta: {
3333
docs: {
34-
category: 'Best Practices',
3534
description: 'Disallow using a callback in asynchronous tests and hooks',
36-
recommended: 'error',
3735
},
3836
messages: {
3937
noDoneCallback:

src/rules/no-duplicate-hooks.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ export default createRule({
44
name: __filename,
55
meta: {
66
docs: {
7-
category: 'Best Practices',
87
description: 'Disallow duplicate setup and teardown hooks',
9-
recommended: false,
108
},
119
messages: {
1210
noDuplicateHook: 'Duplicate {{hook}} in describe block',

src/rules/no-export.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ export default createRule({
55
name: __filename,
66
meta: {
77
docs: {
8-
category: 'Best Practices',
98
description: 'Disallow using `exports` in files containing tests',
10-
recommended: 'error',
119
},
1210
messages: {
1311
unexpectedExport: `Do not export from a test file`,

src/rules/no-focused-tests.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ export default createRule({
55
name: __filename,
66
meta: {
77
docs: {
8-
category: 'Best Practices',
98
description: 'Disallow focused tests',
10-
recommended: 'error',
119
},
1210
messages: {
1311
focusedTest: 'Unexpected focused test',

src/rules/no-hooks.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ export default createRule<
77
name: __filename,
88
meta: {
99
docs: {
10-
category: 'Best Practices',
1110
description: 'Disallow setup and teardown hooks',
12-
recommended: false,
1311
},
1412
messages: {
1513
unexpectedHook: "Unexpected '{{ hookName }}' hook",

src/rules/no-identical-title.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ export default createRule({
2121
name: __filename,
2222
meta: {
2323
docs: {
24-
category: 'Best Practices',
2524
description: 'Disallow identical titles',
26-
recommended: 'error',
2725
},
2826
messages: {
2927
multipleTestTitle:

src/rules/no-if.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ export default createRule({
3939
meta: {
4040
docs: {
4141
description: 'Disallow conditional logic',
42-
category: 'Best Practices',
43-
recommended: false,
4442
},
4543
messages: {
4644
conditionalInTest: 'Test should not contain {{ condition }} statements',

src/rules/no-interpolation-in-snapshots.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ export default createRule({
55
name: __filename,
66
meta: {
77
docs: {
8-
category: 'Best Practices',
98
description: 'Disallow string interpolation inside snapshots',
10-
recommended: 'error',
119
},
1210
messages: {
1311
noInterpolation: 'Do not use string interpolation inside of snapshots',

src/rules/no-jasmine-globals.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ export default createRule({
1010
name: __filename,
1111
meta: {
1212
docs: {
13-
category: 'Best Practices',
1413
description: 'Disallow Jasmine globals',
15-
recommended: 'error',
1614
},
1715
messages: {
1816
illegalGlobal:

src/rules/no-large-snapshots.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,7 @@ export default createRule<[RuleOptions], MessageId>({
7575
name: __filename,
7676
meta: {
7777
docs: {
78-
category: 'Best Practices',
7978
description: 'Disallow large snapshots',
80-
recommended: false,
8179
},
8280
messages: {
8381
noSnapshot: '`{{ lineCount }}`s should begin with lowercase',

src/rules/no-mocks-import.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ export default createRule({
1717
meta: {
1818
type: 'problem',
1919
docs: {
20-
category: 'Best Practices',
2120
description: 'Disallow manually importing from `__mocks__`',
22-
recommended: 'error',
2321
},
2422
messages: {
2523
noManualImport: `Mocks should not be manually imported from a ${mocksDirName} directory. Instead use \`jest.mock\` and import from the original module path`,

src/rules/no-restricted-jest-methods.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ export default createRule<
1212
name: __filename,
1313
meta: {
1414
docs: {
15-
category: 'Best Practices',
1615
description: 'Disallow specific `jest.` methods',
17-
recommended: false,
1816
},
1917
type: 'suggestion',
2018
schema: [

src/rules/no-restricted-matchers.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ export default createRule<
2323
name: __filename,
2424
meta: {
2525
docs: {
26-
category: 'Best Practices',
2726
description: 'Disallow specific matchers & modifiers',
28-
recommended: false,
2927
},
3028
type: 'suggestion',
3129
schema: [

src/rules/no-standalone-expect.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ export default createRule<
6060
name: __filename,
6161
meta: {
6262
docs: {
63-
category: 'Best Practices',
6463
description: 'Disallow using `expect` outside of `it` or `test` blocks',
65-
recommended: 'error',
6664
},
6765
messages: {
6866
unexpectedExpect: 'Expect must be inside of a test block',

src/rules/no-test-prefixes.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ export default createRule({
55
name: __filename,
66
meta: {
77
docs: {
8-
category: 'Best Practices',
98
description: 'Require using `.only` and `.skip` over `f` and `x`',
10-
recommended: 'error',
119
},
1210
messages: {
1311
usePreferredName: 'Use "{{ preferredNodeName }}" instead',

src/rules/no-test-return-statement.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ export default createRule({
2424
name: __filename,
2525
meta: {
2626
docs: {
27-
category: 'Best Practices',
2827
description: 'Disallow explicitly returning from tests',
29-
recommended: false,
3028
},
3129
messages: {
3230
noReturnValue: 'Jest tests should not return a value',

src/rules/no-untyped-mock-factory.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ export default createRule({
2121
name: __filename,
2222
meta: {
2323
docs: {
24-
category: 'Best Practices',
2524
description:
2625
'Disallow using `jest.mock()` factories without an explicit type parameter',
27-
recommended: false,
2826
},
2927
messages: {
3028
addTypeParameterToModuleMock:
@@ -38,7 +36,7 @@ export default createRule({
3836
create(context) {
3937
return {
4038
CallExpression(node: TSESTree.CallExpression): void {
41-
const { callee, typeParameters } = node;
39+
const { callee } = node;
4240

4341
if (callee.type !== AST_NODE_TYPES.MemberExpression) {
4442
return;
@@ -54,6 +52,9 @@ export default createRule({
5452
) {
5553
const [nameNode, factoryNode] = node.arguments;
5654

55+
// this will still emit a deprecation warning as `typeArguments` might be nullish on v6
56+
const typeParameters = node.typeArguments ?? node.typeParameters;
57+
5758
const hasTypeParameter =
5859
typeParameters !== undefined && typeParameters.params.length > 0;
5960
const hasReturnType =

src/rules/prefer-called-with.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ export default createRule({
44
name: __filename,
55
meta: {
66
docs: {
7-
category: 'Best Practices',
87
description:
98
'Suggest using `toBeCalledWith()` or `toHaveBeenCalledWith()`',
10-
recommended: false,
119
},
1210
messages: {
1311
preferCalledWith: 'Prefer {{ matcherName }}With(/* expected args */)',

src/rules/prefer-comparison-matcher.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ export default createRule({
5656
name: __filename,
5757
meta: {
5858
docs: {
59-
category: 'Best Practices',
6059
description: 'Suggest using the built-in comparison matchers',
61-
recommended: false,
6260
},
6361
messages: {
6462
useToBeComparison: 'Prefer using `{{ preferredMatcher }}` instead',

src/rules/prefer-each.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ export default createRule({
55
name: __filename,
66
meta: {
77
docs: {
8-
category: 'Best Practices',
98
description: 'Prefer using `.each` rather than manual loops',
10-
recommended: false,
119
},
1210
messages: {
1311
preferEach: 'prefer using `{{ fn }}.each` rather than a manual loop',

src/rules/prefer-equality-matcher.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ export default createRule({
1313
name: __filename,
1414
meta: {
1515
docs: {
16-
category: 'Best Practices',
1716
description: 'Suggest using the built-in equality matchers',
18-
recommended: false,
1917
},
2018
messages: {
2119
useEqualityMatcher: 'Prefer using one of the equality matchers instead',

0 commit comments

Comments
 (0)