Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
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
$ npm install --save-dev eslint eslint-plugin-ava
Configure it in package.json
.
{
"name": "my-awesome-project",
"eslintConfig": {
"env": {
"es6": true
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": [
"ava"
],
"rules": {
"ava/max-asserts": [2, 5],
"ava/no-cb-test": 0,
"ava/no-identical-title": 2,
"ava/no-invalid-end": 2,
"ava/no-only-test": 2,
"ava/no-skip-assert": 2,
"ava/no-skip-test": 2,
"ava/no-statement-after-end": 2,
"ava/no-todo-test": 1,
"ava/no-unknown-modifiers": 2,
"ava/prefer-power-assert": 0,
"ava/test-ended": 2,
"ava/test-title": [2, "always"],
"ava/use-t": 2,
"ava/use-test": 2
}
}
}
The rules will only activate in test files.
test.cb()
is used.t.end()
is only called inside test.cb()
.test.only()
are present.t.end()
is the last statement executed.test.todo()
is used.t
as their parameter.test
as the variable name.This plugin exports a recommended
configuration that enforces good practices.
To enable this configuration use the extends
property in your package.json
.
{
"name": "my-awesome-project",
"eslintConfig": {
"extends": "plugin:ava/recommended",
"plugins": [
"ava"
]
}
}
See ESLint documentation for more information about extending configuration files.
Note: This configuration will also enable the correct parser options and environment.
MIT © Sindre Sorhus
FAQs
ESLint rules for AVA
The npm package eslint-plugin-ava receives a total of 57,885 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.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.