eslint-plugin-ava

ESLint rules for AVA

Usage no npm install needed!

<script type="module">
  import eslintPluginAva from 'https://cdn.skypack.dev/eslint-plugin-ava';
</script>

README

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

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.

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.