What is eslint-plugin-ava?
eslint-plugin-ava is an ESLint plugin that provides linting rules specific to the AVA test runner. It helps ensure best practices and consistency when writing tests with AVA.
What are eslint-plugin-ava's main functionalities?
Ensure test file naming conventions
This rule enforces a specific naming pattern for test files, ensuring that all test files follow a consistent naming convention.
module.exports = { "rules": { "ava/test-file-name": ["error", { "pattern": "test-*.js" }] } };
Disallow use of t.pass() and t.fail()
This rule disallows the use of t.pass() and t.fail() in tests, encouraging more meaningful assertions.
module.exports = { "rules": { "ava/no-t-pass-fail": "error" } };
Ensure correct use of t.plan()
This rule ensures that t.plan() is used correctly, helping to avoid common mistakes when planning assertions in tests.
module.exports = { "rules": { "ava/use-t-well": "error" } };
Disallow use of assertions outside of tests
This rule disallows the use of assertions outside of test functions, ensuring that all assertions are made within the context of a test.
module.exports = { "rules": { "ava/no-assertion-outside-test": "error" } };
Other packages similar to eslint-plugin-ava
eslint-plugin-jest
eslint-plugin-jest provides linting rules specific to the Jest test runner. It offers similar functionality to eslint-plugin-ava but is tailored for Jest, ensuring best practices and consistency when writing tests with Jest.
eslint-plugin-mocha
eslint-plugin-mocha provides linting rules specific to the Mocha test framework. Like eslint-plugin-ava, it helps enforce best practices and consistency, but it is designed for use with Mocha.
eslint-plugin-jasmine
eslint-plugin-jasmine offers linting rules for the Jasmine testing framework. It serves a similar purpose to eslint-plugin-ava but is focused on ensuring best practices and consistency in Jasmine tests.
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.
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": 2017,
"sourceType": "module"
},
"plugins": [
"ava"
],
"rules": {
"ava/assertion-arguments": "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-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/test-ended": "error",
"ava/test-title": ["error", "if-multiple"],
"ava/use-t-well": "error",
"ava/use-t": "error",
"ava/use-test": "error",
"ava/use-true-false": "error"
}
}
}
Rules
The rules will only activate in test files.
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": {
"plugins": [
"ava"
],
"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.
Credit
License
MIT © Sindre Sorhus