UNPKG

eslint-plugin-mocha-no-only

Version:

Warns when a Mocha JavaScript test framework keyword 'only' is used

79 lines (58 loc) 2.13 kB
# eslint-mocha-no-only This package contains en ESLint rule which throws an error (or warning) when the `only()` method is called on `describe`, `context` and `it` Mocha test keywords. ## Why do I need this? `only()` is a useful mocha feature that lets the test runner run one specific part of a test. Often, developers may end up forgetting removing the `only()` method before commiting and pushing their code. This results in the CI tool running only one specific test suite which may end up in a false-positive build. By having ESLint throw an error in such cases, you can rest assured your CI tool runs all your test suites. ## Installation You'll first need to install [ESLint](http://eslint.org): ``` $ npm i eslint --save-dev ``` Next, install `eslint-plugin-mocha-no-only`: ``` $ npm install eslint-plugin-mocha-no-only --save-dev ``` **Note:** If you installed ESLint globally (using the `-g` flag) then you must also install `eslint-plugin-mocha-no-only` globally. ## Usage Add `eslint-plugin-mocha-no-only` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix: ```json { "plugins": [ "mocha-no-only" ] } ``` Then configure the rules you want to use under the rules section. ```json { "rules": { "mocha-no-only/mocha-no-only": ["error"] } } ``` **Note:** You may want to have a different `.eslintrc` file in your tests directory and place this plugin and rule in it. This would make sure ESLint doesn't errors on other JavaScript object named `describe.only()`, for example. There's also no need to have ESLint watch for this rule in files where there are no mocha tests. ## Examples ### Failing ``` describe("foobar", function() { var foo; beforeEach(function() { foo = new Foo(); }); it.only("should do things", function() { expect(foo).to.do.things; }); }); ``` ### Passing ``` describe("foobar", function() { var foo; beforeEach(function() { foo = new Foo(); }); it("should do things", function() { expect(foo).to.do.things; }); }); ```