What is eslint-plugin-jasmine?
eslint-plugin-jasmine is an ESLint plugin that provides linting rules specific to Jasmine, a popular testing framework for JavaScript. This plugin helps ensure that Jasmine tests follow best practices and maintain consistency.
What are eslint-plugin-jasmine's main functionalities?
no-focused-tests
This rule disallows the use of focused tests (e.g., `fit` and `fdescribe`) to prevent accidentally committing them.
module.exports = {
"rules": {
"jasmine/no-focused-tests": "error"
}
};
no-disabled-tests
This rule warns against the use of disabled tests (e.g., `xdescribe` and `xit`) to ensure that all tests are active.
module.exports = {
"rules": {
"jasmine/no-disabled-tests": "warn"
}
};
no-suite-dupes
This rule prevents the creation of duplicate test suite names, which can cause confusion and errors in test reporting.
module.exports = {
"rules": {
"jasmine/no-suite-dupes": "error"
}
};
no-spec-dupes
This rule prevents the creation of duplicate test spec names within a suite, ensuring each test is unique and easily identifiable.
module.exports = {
"rules": {
"jasmine/no-spec-dupes": ["error", "branch"]
}
};
prefer-toHaveBeenCalledWith
This rule encourages the use of `toHaveBeenCalledWith` over `toHaveBeenCalled` to make assertions more specific and meaningful.
module.exports = {
"rules": {
"jasmine/prefer-toHaveBeenCalledWith": "warn"
}
};
Other packages similar to eslint-plugin-jasmine
eslint-plugin-jest
eslint-plugin-jest is an ESLint plugin for Jest, another popular testing framework. It provides similar linting rules to ensure best practices and consistency in Jest tests. While eslint-plugin-jasmine is tailored for Jasmine, eslint-plugin-jest is specifically designed for Jest.
eslint-plugin-mocha
eslint-plugin-mocha is an ESLint plugin for Mocha, a feature-rich JavaScript test framework. It offers linting rules to enforce best practices and consistency in Mocha tests. Like eslint-plugin-jasmine, it focuses on a specific testing framework, but for Mocha instead of Jasmine.
eslint-plugin-qunit
eslint-plugin-qunit is an ESLint plugin for QUnit, a powerful, easy-to-use JavaScript unit testing framework. It provides linting rules to ensure best practices and consistency in QUnit tests. This plugin is similar to eslint-plugin-jasmine but is designed for QUnit.
eslint-plugin-jasmine
ESLint rules for Jasmine
Usage
-
Install eslint-plugin-jasmine
as a dev-dependency:
npm install --save-dev eslint-plugin-jasmine
-
Enable the plugin by adding it to your .eslintrc
:
plugins:
- jasmine
ESLint itself provides a Jasmine environment for Jasmine's global
variables. It's therefore recommended to also enable it in your .eslintrc
:
plugins:
- jasmine
env:
jasmine: true
By default, no rules are enabled. See the next section for more.
Configuration
This plugin exports a recommended
configuration that enforces good practices.
To enable this configuration, use the extends
property in your .eslintrc
config file:
plugins:
- jasmine
env:
jasmine: true
extends: "plugin:jasmine/recommended"
See the ESLint config docs for more information about extending
configuration files.
Rules
Rule | Recommended | Options |
---|
expect-matcher | 1, | |
expect-single-argument | 1, | |
missing-expect | 0, 'expect()' , 'expectAsync()' | expectation function names |
named-spy | 0 | |
new-line-before-expect | 1 | |
new-line-between-declarations | 1 | |
no-assign-spyon | 0 | |
no-describe-variables | 0 | |
no-disabled-tests | 1 | |
no-expect-in-setup-teardown | 1, 'expect()' , 'expectAsync()' | expectation function names |
no-focused-tests | 2 | |
no-global-setup | 2 | |
no-pending-tests | 1 | |
no-promise-without-done-fail | 1 | |
no-spec-dupes | 1, 'block' | ['block', 'branch'] |
no-suite-callback-args | 2 | |
no-suite-dupes | 1, 'block' | ['block', 'branch'] |
no-unsafe-spy | 1 | |
valid-expect | deprecated | |
prefer-jasmine-matcher | 1 | |
prefer-promise-strategies | 1 | |
prefer-toHaveBeenCalledWith | 1 | |
prefer-toBeUndefined | 0 | ['always', 'never'] |
For example, using the recommended configuration, the no-focused-tests
rule
is enabled and will cause ESLint to throw an error (with an exit code of 1
)
when triggered.
You may customise each rule by adding a value in your .eslintrc
rules
property:
plugins:
- jasmine
env:
jasmine: true
rules:
jasmine/no-focused-tests: 0
jasmine/no-suite-dupes:
- 2
- branch
See configuring rules for more information.
Author
© 2016 - 2017 Tom Vincent git@tlvince.com and contributors.
License
Released under the MIT license.