ESLint rules for Jasmine
-
Install
eslint-plugin-jasmine
as a dev-dependency:npm install --save-dev eslint-plugin-jasmine
-
Enable the plugin, add its globals and the recommended rules to your ESLint configuration in
eslint.config.js
:import js from '@eslint/js'; import jasmine from 'eslint-plugin-jasmine'; import globals from 'globals'; export default [ js.configs.recommended, jasmine.configs.recommended, { languageOptions: { globals: { ...globals.jasmine } }, plugins: { jasmine } } ];
-
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.
This plugin exports a recommended
configuration that enforces good practices.
Using recommended configuration in ESLint version starting from v9:
Add jasmine.configs.recommended
to the default export array in eslint.config.js
:
export default [
jasmine.configs.recommended,
/* rest of your config */
];
Using recommended configuration in ESLint version lower than v9:
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.
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.
Customizing rules in ESLint version starting from v9:
You may customise each rule by ading them under a rules
property in eslint.config.js
:
export default [
{
rules: {
'jasmine/no-focused-tests': 0
}
},
/* rest of your config */
];
Customizing rules in ESLint version lower than v9:
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.
© 2016 - 2017 Tom Vincent git@tlvince.com and contributors.
Released under the MIT license.