vitest-dev / eslint-plugin-vitest

eslint plugin for vitest
MIT License
310 stars 42 forks source link

Rule: Disallow global imports #486

Open Undistraction opened 1 month ago

Undistraction commented 1 month ago

By default eslint will flag vitest globals that aren't imported (describe , expect) etc as errors because they violate the no-undef rule:

error 'describe' is not defined no-undef

We can prevent this using :

env: {
  'vitest/env': true`
}

Or for flat file config:

languageOptions: {
      globals: {
        ...vitest.environments.env.globals,
      },
    }

So there are effectively two styles: one where globals are manually imported per test file, and one where they are not. It would make sense to have a rule that covered the latter style and detected imports of globals from 'vitest' in test files.

veritem commented 1 month ago

A PR is welcome

Undistraction commented 1 month ago

@veritem I'll get that done this week.

Undistraction commented 1 month ago

@veritem looking at jest-eslint they have a rule for one side of this: prefer-importing-jest-globals, but not the other, meaning they have a rule to enforce the presence of jest globals, but not one to enforce their absence. Would you be happy with two different rules:

veritem commented 1 month ago

Let's have both rules for flexibility.