Package Exports
- eslint-plugin-ava
- eslint-plugin-ava/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-ava) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
eslint-plugin-ava 
ESLint rules for AVA
Translations: Français
This plugin is bundled in XO. No need to do anything if you're using it.
Propose or contribute a new rule ➡
Install
$ npm install --save-dev eslint eslint-plugin-ava
Usage
Configure it in package.json
.
{
"name": "my-awesome-project",
"eslintConfig": {
"env": {
"es6": true
},
"parserOptions": {
"ecmaVersion": 2021,
"sourceType": "module"
},
"plugins": [
"ava"
],
"rules": {
"ava/assertion-arguments": "error",
"ava/hooks-order": "error",
"ava/max-asserts": [
"off",
5
],
"ava/no-async-fn-without-await": "error",
"ava/no-cb-test": "off",
"ava/no-duplicate-modifiers": "error",
"ava/no-identical-title": "error",
"ava/no-ignored-test-files": "error",
"ava/no-import-test-files": "error",
"ava/no-incorrect-deep-equal": "error",
"ava/no-inline-assertions": "error",
"ava/no-invalid-end": "error",
"ava/no-nested-tests": "error",
"ava/no-only-test": "error",
"ava/no-skip-assert": "error",
"ava/no-skip-test": "error",
"ava/no-statement-after-end": "error",
"ava/no-todo-implementation": "error",
"ava/no-todo-test": "warn",
"ava/no-unknown-modifiers": "error",
"ava/prefer-async-await": "error",
"ava/prefer-power-assert": "off",
"ava/prefer-t-regex": "error",
"ava/test-ended": "error",
"ava/test-title": "error",
"ava/test-title-format": "off",
"ava/use-t": "error",
"ava/use-t-throws-async-well": "error",
"ava/use-t-well": "error",
"ava/use-test": "error",
"ava/use-true-false": "error"
}
}
}
Rules
The rules will only activate in test files.
- assertion-arguments - Enforce passing correct arguments to assertions.
- hooks-order - Enforce test hook ordering. (fixable)
- max-asserts - Limit the number of assertions in a test.
- no-async-fn-without-await - Ensure that async tests use
await
. - no-cb-test - Ensure no
test.cb()
is used. - no-duplicate-modifiers - Ensure tests do not have duplicate modifiers.
- no-identical-title - Ensure no tests have the same title.
- no-ignored-test-files - Ensure no tests are written in ignored files.
- no-import-test-files - Ensure no test files are imported anywhere.
- no-incorrect-deep-equal - Avoid using
deepEqual
with primitives. (fixable) - no-inline-assertions - Ensure assertions are not called from inline arrow functions. (fixable)
- no-invalid-end - Ensure
t.end()
is only called insidetest.cb()
. - no-nested-tests - Ensure no tests are nested.
- no-only-test - Ensure no
test.only()
are present. - no-skip-assert - Ensure no assertions are skipped.
- no-skip-test - Ensure no tests are skipped.
- no-statement-after-end - Ensure
t.end()
is the last statement executed. - no-todo-implementation - Ensure
test.todo()
is not given an implementation function. - no-todo-test - Ensure no
test.todo()
is used. - no-unknown-modifiers - Prevent the use of unknown test modifiers.
- prefer-async-await - Prefer using async/await instead of returning a Promise.
- prefer-power-assert - Allow only use of the asserts that have no power-assert alternative.
- prefer-t-regex - Prefer using
t.regex()
to test regular expressions. (fixable) - test-ended - Ensure callback tests are explicitly ended.
- test-title - Ensure tests have a title.
- test-title-format - Ensure test titles have a certain format.
- use-t - Ensure test functions use
t
as their parameter. - use-t-throws-async-well - Ensure that
t.throwsAsync()
andt.notThrowsAsync()
are awaited. (partly fixable) - use-t-well - Prevent the incorrect use of
t
. (partly fixable) - use-test - Ensure that AVA is imported with
test
as the variable name. - use-true-false - Ensure that
t.true()
/t.false()
are used instead oft.truthy()
/t.falsy()
.
Recommended config
This plugin exports a recommended
config that enforces good practices.
Enable it in your package.json
with the extends
option:
{
"name": "my-awesome-project",
"eslintConfig": {
"extends": "plugin:ava/recommended"
}
}
See the ESLint docs for more information about extending config files.
Note: This config will also enable the correct parser options and environment.