mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
Follow-up on https://github.com/vercel/next.js/pull/38534#pullrequestreview-1035020450 This lets us use modern JS/TS syntax in ESLint rules and avoid issues like #38530 and #36693 ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) Co-authored-by: JJ Kasper <[email protected]>
30 lines
932 B
TypeScript
30 lines
932 B
TypeScript
import { basename } from 'path'
|
|
import glob from 'glob'
|
|
import index from '@next/eslint-plugin-next'
|
|
|
|
const getRuleNameFromRulePath = (path) => basename(path, '.js')
|
|
const rulePaths = glob.sync('packages/eslint-plugin-next/dist/rules/*js', {
|
|
absolute: true,
|
|
})
|
|
|
|
describe('@next/eslint-plugin-next index', () => {
|
|
it('should include all defined rules and no extra / undefined rules', () => {
|
|
const rules = rulePaths.map((rulePath) => getRuleNameFromRulePath(rulePath))
|
|
|
|
expect(index.rules).toContainAllKeys(rules)
|
|
})
|
|
|
|
rulePaths.forEach((rulePath) => {
|
|
let rule = require(rulePath)
|
|
rule = rule.default ?? rule
|
|
const ruleName = getRuleNameFromRulePath(rulePath)
|
|
const { recommended = false } = rule.meta.docs
|
|
|
|
it(`${ruleName}: recommend should be \`${recommended}\``, () => {
|
|
expect(`@next/next/${ruleName}` in index.configs.recommended.rules).toBe(
|
|
recommended
|
|
)
|
|
})
|
|
})
|
|
})
|