Product
Introducing Ruby Support in Socket
Socket is launching Ruby support for all users. Enhance your Rails projects with AI-powered security scans for vulnerabilities and supply chain threats. Now in Beta!
eslint-plugin-ava
Advanced tools
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.
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" } };
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 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 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 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 ➡
$ npm install --save-dev eslint eslint-plugin-ava
Configure it in package.json
.
{
"name": "my-awesome-project",
"eslintConfig": {
"env": {
"es6": true
},
"parserOptions": {
"ecmaVersion": "latest",
"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-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-nested-tests": "error",
"ava/no-only-test": "error",
"ava/no-skip-assert": "error",
"ava/no-skip-test": "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-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"
}
}
}
The rules will only activate in test files.
await
.deepEqual
with primitives. (fixable)test.only()
are present.test.todo()
is not given an implementation function.test.todo()
is used.t.regex()
to test regular expressions. (fixable)t
as their parameter.t.throwsAsync()
and t.notThrowsAsync()
are awaited. (partly fixable)t
. (partly fixable)test
as the variable name.t.true()
/t.false()
are used instead of t.truthy()
/t.falsy()
.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.
FAQs
ESLint rules for AVA
The npm package eslint-plugin-ava receives a total of 113,332 weekly downloads. As such, eslint-plugin-ava popularity was classified as popular.
We found that eslint-plugin-ava demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching Ruby support for all users. Enhance your Rails projects with AI-powered security scans for vulnerabilities and supply chain threats. Now in Beta!
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.