Security News
RubyGems.org Adds New Maintainer Role
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.
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.
$ npm install --save-dev eslint eslint-plugin-ava
Configure it in package.json
.
{
"name": "my-awesome-project",
"eslintConfig": {
"env": {
"es6": true
},
"parserOptions": {
"ecmaVersion": 2019,
"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-import-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"
}
}
}
The rules will only activate in test files.
await
.test.cb()
is used.t.end()
is only called inside test.cb()
.test.only()
are present. (fixable)t.end()
is the last statement executed.test.todo()
is not given an implementation function.test.todo()
is used.t
.t
as their parameter.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.
MIT
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
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.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.