Deprecated. JSCS is moving to the ESLint team. Use eslint-config-seegno with ESLint.
jscs-config-seegno
Seegno-flavored JSCS config.
Installation
$ npm install jscs jscs-config-seegno should --save-dev
Usage
Create an .jscsrc
file with the following:
preset: seegno
Add the following script
to your package.json
:
{
"scripts": {
"lint": "jscs ."
}
}
and run the linter with:
$ npm run lint
Custom rules
The preset includes the following list of custom rules.
disallowGeneratorsInDescribeFunctions
Disallows the usage of generators for the describe
grouping primitive that features in testing frameworks such as mocha
.
This rule helps to avoid incorrectly replacing the function signature with a generator declaration, which results in some cryptic errors when running the tests, since describe
is not meant to be asynchronous.
Requires: mocha
Type: Boolean
Value: true
Example
disallowGeneratorsInDescribeFunctions: true
Valid
describe('foobar', function () {
it('should work');
});
Invalid
describe('foobar', function *() {
it('should work');
});
disallowOnlyFilterInTestFunctions
Disallows the usage of only
for grouping primitives or test cases in mocha
.
Although it might help to run individual tests locally, this rule helps to ensure the entire test suite runs, for instance, using build or pre-commit scripts.
Requires: mocha
Type: Boolean
Value: true
Example
disallowOnlyFilterInTestFunctions: true
Valid
describe('foobar', function () {
it('should work');
});
Invalid
describe.only('foobar', function *() {
it('should work');
});
describe('foobar', function *() {
it.only('should work');
});
requireShouldAssertionExecution
Disallows the usage of test expectation properties in favor of methods with libraries such as should
.
Due to the nature of some expectation libraries, it's easy to forget a method ()
which might result in an assertion that never gets executed. This rule is meant to avoid that issue.
Requires: should
Type: Boolean
Value: true
Example
requireShouldAssertionExecution: true
Valid
true.should.be.true();
Invalid
true.should.be.true;
requireSqlTemplate
Disallows the usage of raw SQL templates with interpolation.
This rule enforces the usage of a library such as sql-tag, which escapes data provided to an SQL query statement via interpolation, helping to avoid, for instance, potential injection attacks.
Requires: sql-tag
Type: Boolean
Value: true
Example
requireSqlTemplate: true
Valid
const column = '*';
const query = sql`SELECT ${column} FROM foobar`;
fn(sql`SELECT ${column} FROM foobar`)
Invalid
const column = '*';
const query = `SELECT ${column} FROM foobar`;
fn(`SELECT ${column} FROM foobar`)