ts-standardx
Version:
Yet another configurable linter for TypeScript and JavaScript.
36 lines (30 loc) • 1.35 kB
text/typescript
import { rules as prettierRules } from 'eslint-config-prettier'
import { rules } from '../src/rules'
import { compatRules } from '../src/compatRules'
import { isTypescriptRule } from '../src/utils'
import { typescriptRules, typescriptRecommendedRules, isRuleContained } from './utils'
describe('rules', () => {
Object.entries(rules).forEach(([ruleName, ruleOption]) => {
it('should be typescript rules', () => {
expect(isTypescriptRule(ruleName)).toBe(true)
})
it(`rule ${ruleName} should be in @typescript-eslint`, () => {
const actualRuleName = ruleName.replace(/^@typescript-eslint\//, '')
expect(isRuleContained(actualRuleName, typescriptRules)).toBe(true)
})
it(`rule ${ruleName} should not be in @typescript-eslint/recommended, or should be changed`, () => {
const isContained = isRuleContained(ruleName, typescriptRecommendedRules)
if (isContained) {
expect(ruleOption).not.toBe(typescriptRecommendedRules[ruleName])
return
}
expect(isContained).toBe(false)
})
it(`rule ${ruleName} should not be in eslint-config-prettier`, () => {
expect(isRuleContained(ruleName, prettierRules)).toBe(false)
})
it(`rule ${ruleName} should not be in compatRules`, () => {
expect(isRuleContained(ruleName, compatRules)).toBe(false)
})
})
})