Skip to content

avajs/eslint-plugin-ava

Repository files navigation

eslint-plugin-ava Coverage Status

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

Requires ESLint >=10, flat config, and ESM.

Usage

Use a preset config or configure each rule in eslint.config.js.

import eslintPluginAva from 'eslint-plugin-ava';

export default [
	{
		plugins: {
			ava: eslintPluginAva,
		},
		rules: {
			'ava/assertion-arguments': 'error',
			'ava/no-only-test': 'error',
		},
	},
];

Rules

The rules will only activate in test files.

💼 Configurations enabled in.
⚠️ Configurations set to warn in.
🚫 Configurations disabled in.
✅ Set in the recommended configuration.
🔧 Automatically fixable by the --fix CLI option.
💡 Manually fixable by editor suggestions.
❌ Deprecated.

Name                      Description 💼 ⚠️ 🚫 🔧 💡
assertion-arguments Enforce passing correct arguments to assertions. 🔧
failing-test-url Require a URL in a comment above test.failing().
hooks-order Enforce test hook ordering. 🔧
max-asserts Limit the number of assertions in a test.
no-async-fn-without-await Require async tests to use await. 💡
no-ava-in-dependencies Disallow AVA in dependencies. 🔧
no-commented-tests Disallow commented-out tests.
no-conditional-assertion Disallow assertions inside conditional statements.
no-duplicate-hooks Disallow duplicate hook declarations.
no-duplicate-modifiers Disallow duplicate test modifiers. 🔧
no-identical-title Disallow identical test titles.
no-ignored-test-files Disallow tests in ignored files.
no-import-test-files Disallow importing test files.
no-incorrect-deep-equal Disallow using deepEqual with primitives. 🔧
no-inline-assertions Disallow inline assertions. 🔧
no-invalid-modifier-chain Disallow invalid modifier chains. 🔧 💡
no-negated-assertion Disallow negated assertions. 🔧
no-nested-assertions Disallow nested assertions.
no-nested-tests Disallow nested tests.
no-only-test Disallow test.only(). 💡
no-skip-assert Disallow skipping assertions. 💡
no-skip-test Disallow skipping tests. 💡
no-todo-implementation Disallow giving test.todo() an implementation function. 💡
no-todo-test Disallow test.todo(). 💡
no-unknown-modifiers Disallow unknown test modifiers. 💡
no-useless-t-pass Disallow useless t.pass().
prefer-async-await Prefer async/await over returning a Promise.
prefer-power-assert Enforce using only assertions compatible with power-assert.
prefer-t-regex Prefer t.regex() over RegExp#test() and String#match(). 🔧
prefer-t-throws Prefer t.throws() or t.throwsAsync() over try/catch.
require-assertion Require that tests contain at least one assertion.
test-title Require tests to have a title. 🔧
test-title-format Require test titles to match a pattern.
use-t Require test functions to use t as their parameter.
use-t-throws-async-well Require t.throwsAsync() and t.notThrowsAsync() to be awaited. 🔧
use-t-well Disallow incorrect use of t. 🔧
use-test Require AVA to be imported as test.
use-true-false Prefer t.true()/t.false() over t.truthy()/t.falsy(). 🔧

Recommended config

This plugin exports a recommended config that enforces good practices.

import eslintPluginAva from 'eslint-plugin-ava';

export default [
	...eslintPluginAva.configs.recommended,
];