blob: 3d265bd7e2459e9583195b9402778d9c9e01dea7 [file] [log] [blame] [view]
# eslint-plugin-jasmine
[![Build Status][travis-image]][travis-url]
[![npm version][npm-image]][npm-url]
[![License][license-image]][license-url]
[travis-url]: https://travis-ci.org/tlvince/eslint-plugin-jasmine
[travis-image]: https://img.shields.io/travis/tlvince/eslint-plugin-jasmine.svg
[npm-url]: https://www.npmjs.com/package/eslint-plugin-jasmine
[npm-image]: https://img.shields.io/npm/v/eslint-plugin-jasmine.svg
[license-url]: https://opensource.org/licenses/MIT
[license-image]: https://img.shields.io/npm/l/eslint-plugin-jasmine.svg
> ESLint rules for Jasmine
## Usage
1. Install `eslint-plugin-jasmine` as a dev-dependency:
```shell
npm install --save-dev eslint-plugin-jasmine
```
2. Enable the plugin by adding it to your `.eslintrc`:
```yaml
plugins:
- jasmine
```
ESLint itself provides a [Jasmine environment][env] for Jasmine's global
variables. It's therefore recommended to also enable it in your `.eslintrc`:
```yaml
plugins:
- jasmine
env:
jasmine: true
```
By default, no rules are enabled. See the next section for more.
[env]: http://eslint.org/docs/user-guide/configuring#specifying-environments
## Configuration
This plugin exports a `recommended` configuration that enforces good practices.
To enable this configuration, use the `extends` property in your `.eslintrc`
config file:
```yaml
plugins:
- jasmine
env:
jasmine: true
extends: 'plugin:jasmine/recommended'
```
See the [ESLint config docs][] for more information about extending
configuration files.
[eslint config docs]: http://eslint.org/docs/user-guide/configuring#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:
```yaml
plugins:
- jasmine
env:
jasmine: true
rules:
jasmine/no-focused-tests: 0
jasmine/no-suite-dupes:
- 2
- branch
```
See [configuring rules][] for more information.
[expect-matcher]: docs/rules/expect-matcher.md
[expect-single-argument]: docs/rules/expect-single-argument.md
[missing-expect]: docs/rules/missing-expect.md
[named-spy]: docs/rules/named-spy.md
[new-line-before-expect]: docs/rules/new-line-before-expect.md
[new-line-between-declarations]: docs/rules/new-line-between-declarations.md
[no-assign-spyon]: docs/rules/no-assign-spyon.md
[no-describe-variables]: docs/rules/no-describe-variables.md
[no-disabled-tests]: docs/rules/no-disabled-tests.md
[no-expect-in-setup-teardown]: docs/rules/no-expect-in-setup-teardown.md
[no-focused-tests]: docs/rules/no-focused-tests.md
[no-global-setup]: docs/rules/no-global-setup.md
[no-pending-tests]: docs/rules/no-pending-tests.md
[no-promise-without-done-fail]: docs/rules/no-promise-without-done-fail.md
[no-spec-dupes]: docs/rules/no-spec-dupes.md
[no-suite-callback-args]: docs/rules/no-suite-callback-args.md
[no-suite-dupes]: docs/rules/no-suite-dupes.md
[no-unsafe-spy]: docs/rules/no-unsafe-spy.md
[valid-expect]: docs/rules/valid-expect.md
[prefer-jasmine-matcher]: docs/rules/prefer-jasmine-matcher.md
[prefer-promise-strategies]: docs/rules/prefer-promise-strategies.md
[prefer-toHaveBeenCalledWith]: docs/rules/prefer-toHaveBeenCalledWith.md
[prefer-toBeUndefined]: docs/rules/prefer-toBeUndefined.md
[configuring rules]: http://eslint.org/docs/user-guide/configuring#configuring-rules
## Author
© 2016 - 2017 Tom Vincent <git@tlvince.com> and [contributors][].
[contributors]: https://github.com/tlvince/eslint-plugin-jasmine/graphs/contributors
## License
Released under the [MIT license](http://tlvince.mit-license.org).