Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: upgrade @typescript-eslint/utils to v6 #1401

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
]
},
"dependencies": {
"@typescript-eslint/utils": "^5.10.0"
"@typescript-eslint/utils": "6"
},
"devDependencies": {
"@babel/cli": "^7.4.4",
Expand All @@ -111,8 +111,9 @@
"@types/eslint": "^8.4.6",
"@types/jest": "^29.0.0",
"@types/node": "^14.18.26",
"@typescript-eslint/eslint-plugin": "^5.0.0",
"@typescript-eslint/parser": "^5.0.0",
"@typescript-eslint/eslint-plugin": "6",
"@typescript-eslint/parser": "6",
"@typescript-eslint/rule-tester": "^6.0.0",
"babel-jest": "^29.0.0",
"babel-plugin-replace-ts-export-assignment": "^0.0.2",
"dedent": "^1.5.0",
Expand Down
7 changes: 0 additions & 7 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,6 @@ type RuleModule = TSESLint.RuleModule<string, unknown[]> & {
meta: Required<Pick<TSESLint.RuleMetaData<string>, 'docs'>>;
};

// v5 of `@typescript-eslint/experimental-utils` removed this
declare module '@typescript-eslint/utils/dist/ts-eslint/Rule' {
export interface RuleMetaDataDocs {
category: 'Best Practices' | 'Possible Errors';
}
}

// copied from https://github.com/babel/babel/blob/d8da63c929f2d28c401571e2a43166678c555bc4/packages/babel-helpers/src/helpers.js#L602-L606
/* istanbul ignore next */
const interopRequireDefault = (obj: any): { default: any } =>
Expand Down
9 changes: 7 additions & 2 deletions src/rules/__tests__/unbound-method.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ function getFixturesRootDir(): string {

const rootPath = getFixturesRootDir();

const ruleTester = new ESLintUtils.RuleTester({
const RuleTester =
ESLintUtils.RuleTester ??
// eslint-disable-next-line @typescript-eslint/no-require-imports
require('@typescript-eslint/rule-tester').RuleTester;

const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
Expand Down Expand Up @@ -164,7 +169,7 @@ describe('error handling', () => {
});

describe('when @typescript-eslint/eslint-plugin is not available', () => {
const ruleTester = new ESLintUtils.RuleTester({
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
Expand Down
4 changes: 2 additions & 2 deletions src/rules/consistent-test-it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@ export default createRule<
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Enforce `test` and `it` usage conventions',
recommended: false,
},
fixable: 'code',
messages: {
Expand All @@ -51,9 +49,11 @@ export default createRule<
type: 'object',
properties: {
fn: {
type: 'string',
enum: [TestCaseName.it, TestCaseName.test],
},
withinDescribe: {
type: 'string',
enum: [TestCaseName.it, TestCaseName.test],
},
},
Expand Down
2 changes: 0 additions & 2 deletions src/rules/expect-expect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ export default createRule<
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Enforce assertion to be made in a test body',
recommended: 'warn',
},
messages: {
noAssertions: 'Test has no assertions',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/max-expects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Enforces a maximum number assertion calls in a test body',
recommended: false,
},
messages: {
exceededMaxAssertion:
Expand Down
2 changes: 0 additions & 2 deletions src/rules/max-nested-describe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Enforces a maximum depth to nested describe calls',
recommended: false,
},
messages: {
exceededMaxDepth:
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-alias-methods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow alias methods',
recommended: 'error',
},
messages: {
replaceAlias: `Replace {{ alias }}() with its canonical name of {{ canonical }}()`,
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-commented-out-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow commented out tests',
recommended: 'warn',
},
messages: {
commentedTests: 'Some tests seem to be commented',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-conditional-expect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ export default createRule({
meta: {
docs: {
description: 'Disallow calling `expect` conditionally',
category: 'Best Practices',
recommended: 'error',
},
messages: {
conditionalExpect: 'Avoid calling `expect` conditionally`',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-conditional-in-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ export default createRule({
meta: {
docs: {
description: 'Disallow conditional logic in tests',
category: 'Best Practices',
recommended: false,
},
messages: {
conditionalInTest: 'Avoid having conditionals in tests',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-deprecated-functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow use of deprecated functions',
recommended: 'error',
},
messages: {
deprecatedFunction:
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-disabled-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow disabled tests',
recommended: 'warn',
},
messages: {
missingFunction: 'Test is missing function argument',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-done-callback.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow using a callback in asynchronous tests and hooks',
recommended: 'error',
},
messages: {
noDoneCallback:
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-duplicate-hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow duplicate setup and teardown hooks',
recommended: false,
},
messages: {
noDuplicateHook: 'Duplicate {{hook}} in describe block',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-export.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow using `exports` in files containing tests',
recommended: 'error',
},
messages: {
unexpectedExport: `Do not export from a test file`,
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-focused-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow focused tests',
recommended: 'error',
},
messages: {
focusedTest: 'Unexpected focused test',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ export default createRule<
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow setup and teardown hooks',
recommended: false,
},
messages: {
unexpectedHook: "Unexpected '{{ hookName }}' hook",
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-identical-title.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow identical titles',
recommended: 'error',
},
messages: {
multipleTestTitle:
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-if.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ export default createRule({
meta: {
docs: {
description: 'Disallow conditional logic',
category: 'Best Practices',
recommended: false,
},
messages: {
conditionalInTest: 'Test should not contain {{ condition }} statements',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-interpolation-in-snapshots.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow string interpolation inside snapshots',
recommended: 'error',
},
messages: {
noInterpolation: 'Do not use string interpolation inside of snapshots',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-jasmine-globals.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow Jasmine globals',
recommended: 'error',
},
messages: {
illegalGlobal:
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-large-snapshots.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,7 @@ export default createRule<[RuleOptions], MessageId>({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow large snapshots',
recommended: false,
},
messages: {
noSnapshot: '`{{ lineCount }}`s should begin with lowercase',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-mocks-import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@ export default createRule({
meta: {
type: 'problem',
docs: {
category: 'Best Practices',
description: 'Disallow manually importing from `__mocks__`',
recommended: 'error',
},
messages: {
noManualImport: `Mocks should not be manually imported from a ${mocksDirName} directory. Instead use \`jest.mock\` and import from the original module path`,
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-restricted-jest-methods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ export default createRule<
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow specific `jest.` methods',
recommended: false,
},
type: 'suggestion',
schema: [
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-restricted-matchers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ export default createRule<
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow specific matchers & modifiers',
recommended: false,
},
type: 'suggestion',
schema: [
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-standalone-expect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ export default createRule<
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow using `expect` outside of `it` or `test` blocks',
recommended: 'error',
},
messages: {
unexpectedExpect: 'Expect must be inside of a test block',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-test-prefixes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Require using `.only` and `.skip` over `f` and `x`',
recommended: 'error',
},
messages: {
usePreferredName: 'Use "{{ preferredNodeName }}" instead',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/no-test-return-statement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Disallow explicitly returning from tests',
recommended: false,
},
messages: {
noReturnValue: 'Jest tests should not return a value',
Expand Down
7 changes: 4 additions & 3 deletions src/rules/no-untyped-mock-factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,8 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description:
'Disallow using `jest.mock()` factories without an explicit type parameter',
recommended: false,
},
messages: {
addTypeParameterToModuleMock:
Expand All @@ -38,7 +36,7 @@ export default createRule({
create(context) {
return {
CallExpression(node: TSESTree.CallExpression): void {
const { callee, typeParameters } = node;
const { callee } = node;

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

// this will still emit a deprecation warning as `typeArguments` might be nullish on v6
const typeParameters = node.typeArguments ?? node.typeParameters;

const hasTypeParameter =
typeParameters !== undefined && typeParameters.params.length > 0;
const hasReturnType =
Expand Down
2 changes: 0 additions & 2 deletions src/rules/prefer-called-with.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description:
'Suggest using `toBeCalledWith()` or `toHaveBeenCalledWith()`',
recommended: false,
},
messages: {
preferCalledWith: 'Prefer {{ matcherName }}With(/* expected args */)',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/prefer-comparison-matcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Suggest using the built-in comparison matchers',
recommended: false,
},
messages: {
useToBeComparison: 'Prefer using `{{ preferredMatcher }}` instead',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/prefer-each.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Prefer using `.each` rather than manual loops',
recommended: false,
},
messages: {
preferEach: 'prefer using `{{ fn }}.each` rather than a manual loop',
Expand Down
2 changes: 0 additions & 2 deletions src/rules/prefer-equality-matcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@ export default createRule({
name: __filename,
meta: {
docs: {
category: 'Best Practices',
description: 'Suggest using the built-in equality matchers',
recommended: false,
},
messages: {
useEqualityMatcher: 'Prefer using one of the equality matchers instead',
Expand Down
Loading