-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
chore: de-duplicate lint config #10978
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,9 +29,11 @@ const restrictNamedDeclarations = { | |
selector: 'ExportNamedDeclaration[declaration=null][source=null]', | ||
}; | ||
|
||
const vitestFiles = [ | ||
'packages/eslint-plugin-internal/tests/**/*.test.{ts,tsx,cts,mts}', | ||
]; | ||
const vitestPackages = ['eslint-plugin-internal']; | ||
|
||
const vitestFiles = vitestPackages.map( | ||
name => `packages/${name}/tests/**/*.test.{ts,tsx,cts,mts}`, | ||
); | ||
|
||
export default tseslint.config( | ||
// register all of the plugins up-front | ||
|
@@ -392,7 +394,6 @@ export default tseslint.config( | |
'packages/integration-tests/tools/integration-test-base.ts', | ||
'packages/integration-tests/tools/pack-packages.ts', | ||
], | ||
ignores: vitestFiles, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this meant the various loosening rule options were not applying to vitest tests, but should be. so the previous PR duplicated them below in their own vitest section moving it into a generic block that applies to all tests fixes this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. TBH I'm kinda -1 on this. It's true that it's DRYer in the moment but the duplication will go away on its own once everything is in vitest, and if we need there to be drift between the jest/vitest parts then this makes it less flexible. So I think as-is makes good sense as a transitional approach, but it's marginal difference either way 🤷 Can go either way if others have opinions. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤷♂️ I'm not tied to it enough to mind either way. It's very unlikely we will alter these rules between test frameworks since they're more to do with syntax and casts Eventually the vitest rules merge into this block, and you remove the jest block. Or your duplicate in both and remove the jest block. We achieve the same either way, just we duplicate the rules in the latter |
||
rules: { | ||
'@typescript-eslint/no-empty-function': [ | ||
'error', | ||
|
@@ -403,6 +404,19 @@ export default tseslint.config( | |
'@typescript-eslint/no-unsafe-call': 'off', | ||
'@typescript-eslint/no-unsafe-member-access': 'off', | ||
'@typescript-eslint/no-unsafe-return': 'off', | ||
}, | ||
}, | ||
// jest-specific config | ||
{ | ||
kirkwaiblinger marked this conversation as resolved.
Show resolved
Hide resolved
|
||
files: [ | ||
'packages/*/tests/**/*.test.{ts,tsx,cts,mts}', | ||
'packages/*/tests/**/test.{ts,tsx,cts,mts}', | ||
'packages/parser/tests/**/*.{ts,tsx,cts,mts}', | ||
'packages/integration-tests/tools/integration-test-base.ts', | ||
'packages/integration-tests/tools/pack-packages.ts', | ||
], | ||
ignores: vitestFiles, | ||
rules: { | ||
'jest/no-alias-methods': 'error', | ||
'jest/no-deprecated-functions': 'error', | ||
'jest/no-disabled-tests': 'error', | ||
|
@@ -419,19 +433,10 @@ export default tseslint.config( | |
'jest/valid-expect': 'error', | ||
}, | ||
}, | ||
// test file specific configuration | ||
// vitest-specific configuration | ||
{ | ||
kirkwaiblinger marked this conversation as resolved.
Show resolved
Hide resolved
|
||
files: vitestFiles, | ||
rules: { | ||
'@typescript-eslint/no-empty-function': [ | ||
'error', | ||
{ allow: ['arrowFunctions'] }, | ||
], | ||
'@typescript-eslint/no-non-null-assertion': 'off', | ||
'@typescript-eslint/no-unsafe-assignment': 'off', | ||
'@typescript-eslint/no-unsafe-call': 'off', | ||
'@typescript-eslint/no-unsafe-member-access': 'off', | ||
'@typescript-eslint/no-unsafe-return': 'off', | ||
'vitest/no-alias-methods': 'error', | ||
'vitest/no-disabled-tests': 'error', | ||
'vitest/no-focused-tests': 'error', | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO let's revert this part. It creates merge conflicts on all the vitest PRs for very marginal gain. We can trivially DRY this up once the in-progress PRs are merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Otherwise we're repeating somewhat lengthy globs an increasing amount over time. Hoping they stay in sync
I'd rather fix this now while there's only one instead of doing it later when there's many