eslint-community / eslint-plugin-eslint-plugin

An ESLint plugin for linting ESLint plugins
MIT License
196 stars 26 forks source link

New: rule tests-ordering #53

Open aladdin-add opened 7 years ago

aladdin-add commented 7 years ago

if a rule has a very large number of test cases, it would be fine to reorder them based on options.

this rule can enforce code like this to improve readability:

      new RuleTester().run('foo', bar, {
        valid: [

          // valid tests for options: ['foo']
          { code: 'codeA', options: ['foo'] },
          { code: 'codeB', options: ['foo'] },
          // and more...

          // valid tests for options: ['bar']
          { code: 'codeA', options: ['bar'] },
          { code: 'codeB', options: ['bar'] },
          // and more...
        ],
      });
not-an-aardvark commented 6 years ago

How would ordering be determined? For example, does options: ['foo'] come before options: ['foo', 'bar']?

aladdin-add commented 6 years ago

it aims to put the tests having same options together, but it's fine to add an option to enforce options ordering alphabetically:

// tests for options: []
...

// tests for options: ['bar']
...

// tests for options: ['bar', 'foo']
...

// tests for options: ['foo']
...
not-an-aardvark commented 6 years ago

Sounds good to me. I don't think it's necessary to make the options alphabetical -- that seems like it could be confusing.