diff --git a/.eslintrc b/.eslintrc index 7b7803d..74d8170 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,9 +2,9 @@ env: node: true rules: - indent: [2, 'tab'] + indent: [1, 'tab'] brace-style: [2, "1tbs"] - comma-style: [2, "last"] + comma-style: [1, "last"] default-case: 2 func-style: [2, "declaration"] no-floating-decimal: 2 @@ -12,27 +12,25 @@ rules: no-undefined: 2 radix: 2 space-before-function-paren: [1, "never"] - space-after-keywords: [2, "always"] - space-before-blocks: 2 + keyword-spacing: [2, {after: true}] + space-before-blocks: 1 spaced-comment: [2, "always", { exceptions: ["-"]}] - valid-jsdoc: [1, { requireReturn: false, prefer: { return": "returns" }}] + valid-jsdoc: [1, { requireReturn: false, prefer: { return: "returns" }}] wrap-iife: 2 guard-for-in: 2 strict: [2, "global"] - global-strict: 0 no-alert: 2 camelcase: 1 curly: [2, "all"] eqeqeq: [2, "allow-null"] no-empty: 2 - no-underscore-dangle: 0 no-use-before-define: 2 no-obj-calls: 2 - no-unused-vars: [0, {"vars": "local", "args": "after-used"}] + no-unused-vars: [1, {vars: "local", args: "after-used"}] new-cap: 2 no-shadow: 1 no-invalid-regexp: 2 - comma-dangle: [2, "never"] + comma-dangle: [1, "never"] no-undef: 2 no-new: 2 no-extra-semi: 2 @@ -42,3 +40,17 @@ rules: quotes: [1, "single", "avoid-escape"] no-unreachable: 2 eol-last: 1 + operator-linebreak: [1, "before", {overrides: {"?": "after", ":": "after"}}] + max-len: [1, 98, 4, {"ignoreComments": true}] + no-multi-str: 1 + no-mixed-spaces-and-tabs: 1 + no-trailing-spaces: 1 + space-infix-ops: 1 + space-unary-ops: 1 + no-with: 2 + dot-notation: 1 + semi-spacing: 1 + key-spacing: [1, {beforeColon: false, afterColon: true, mode: "minimum"}] + space-in-parens: [1, "never"] + space-return-throw-case: 1 + space-after-keywords: 1 diff --git a/example/config.js b/example/config.js index 3cb1c2a..1002e71 100644 --- a/example/config.js +++ b/example/config.js @@ -28,9 +28,9 @@ gulp.task('inline-config', function() { .pipe(eslint({ // gulp-eslint's config works much like .eslintrc with a dash of ESLint's CLI - 'extends':'eslint:recommended', + 'extends': 'eslint:recommended', - 'ecmaFeatures':{ + 'ecmaFeatures': { 'modules': true }, diff --git a/example/fail.js b/example/fail.js index d8c65e3..b2cc687 100644 --- a/example/fail.js +++ b/example/fail.js @@ -16,7 +16,7 @@ gulp.task('fail-immediately', function() { .pipe(eslint.failOnError()) // need to do something before the process exits? Try this: .on('error', function(error) { - gulpUtil.log('Stream Exiting With Error'); + gulpUtil.log('Stream Exiting With Error: ' + error.message); }); }); diff --git a/example/quiet.js b/example/quiet.js index 2799b8b..c358237 100644 --- a/example/quiet.js +++ b/example/quiet.js @@ -10,9 +10,6 @@ gulp.task('quiet-lint', function() { .pipe(eslint({ // only report errors quiet: true - })) - .pipe(eslint.result(function(result) { - })) .pipe(eslint.format()); }); diff --git a/package.json b/package.json index 534ce92..422839c 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "test": "test" }, "scripts": { - "pretest": "jscs *.js test/*.js && gulp test", + "pretest": "gulp test", "test": "mocha", "gulp": "gulp", "gulp-example": "gulp --gulpfile=example/config.js", @@ -51,18 +51,8 @@ "gulp": "^3.9.0", "istanbul": "^0.4.0", "istanbul-coveralls": "^1.0.3", - "jscs": "^2.0.0", "mocha": "^2.2.5", "should": "^8.0.1", "vinyl": "^1.0.0" - }, - "jscsConfig": { - "preset": "google", - "validateIndentation": "\t", - "disallowMultipleVarDecl": null, - "maximumLineLength": { - "value": 98, - "allowComments": true - } } } diff --git a/test/fail.js b/test/fail.js index 37c2041..d6c7c4c 100644 --- a/test/fail.js +++ b/test/fail.js @@ -19,7 +19,7 @@ describe('gulp-eslint failOnError', function() { .on('error', function(err) { this.removeListener('finish', endWithoutError); should.exists(err); - err.message.should.equal('"x" is not defined.'); + err.message.should.equal('\'x\' is not defined.'); err.fileName.should.equal('test/fixtures/invalid.js'); err.plugin.should.equal('gulp-eslint'); done(); @@ -57,9 +57,9 @@ describe('gulp-eslint failOnError', function() { file.eslint = {}; eslint.failOnError() - .on('error', function(error) { + .on('error', function(err) { this.removeListener('finish', done); - done(error); + done(err); }) .on('finish', done) .end(file); diff --git a/test/fixtures/.eslintrc-babel b/test/fixtures/.eslintrc-babel deleted file mode 100644 index 8dafe48..0000000 --- a/test/fixtures/.eslintrc-babel +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parser": "babel-eslint" -} diff --git a/test/format.js b/test/format.js index cdbad74..5ca9383 100644 --- a/test/format.js +++ b/test/format.js @@ -52,7 +52,7 @@ describe('gulp-eslint format', function() { * @param {String} message - a message to trigger an error */ function failWriter(message) { - var error = new Error('Writer Test Error'); + var error = new Error('Writer Test Error' + (message ? ': ' + message : '')); error.name = 'TestError'; throw error; } @@ -87,7 +87,8 @@ describe('gulp-eslint format', function() { it('should format all ESLint results at once', function(done) { var files = getFiles(); - var lintStream = eslint().on('error', done); + var lintStream = eslint({useEslintrc: false, rules: {'strict': 2}}); + lintStream.on('error', done); var formatStream = eslint.format(formatResults, outputWriter); @@ -154,7 +155,7 @@ describe('gulp-eslint format', function() { var files = getFiles(); - var lintStream = eslint() + var lintStream = eslint({useEslintrc: false, rules: {'strict': 2}}) .on('error', done); var formatStream = eslint.formatEach(formatResult, outputWriter) @@ -184,7 +185,7 @@ describe('gulp-eslint format', function() { var files = getFiles(); - var lintStream = eslint() + var lintStream = eslint({useEslintrc: false, rules: {'strict': 2}}) .on('error', done); var formatStream = eslint.formatEach(formatResult, failWriter); @@ -192,7 +193,7 @@ describe('gulp-eslint format', function() { formatStream .on('error', function(err) { should.exists(err); - err.message.should.equal('Writer Test Error'); + err.message.should.equal('Writer Test Error: 1 messages'); err.name.should.equal('TestError'); err.plugin.should.equal('gulp-eslint'); done(); diff --git a/test/linting.js b/test/linting.js index b4bb4fe..bdb6677 100644 --- a/test/linting.js +++ b/test/linting.js @@ -1,12 +1,12 @@ /* global describe, it*/ 'use strict'; -var fs = require('fs'); -var eslint = require('../'); -var stream = require('stream'); -var File = require('vinyl'); -var should = require('should'); -var BufferStreams = require('bufferstreams'); +var fs = require('fs'), + eslint = require('../'), + stream = require('stream'), + File = require('vinyl'), + should = require('should'), + BufferStreams = require('bufferstreams'); require('mocha'); @@ -14,10 +14,9 @@ describe('gulp-eslint plugin', function() { it('should configure an alternate parser', function(done) { eslint({ - configFile: 'test/fixtures/.eslintrc-babel', - globals: { - '$': true - } + parser: 'babel-eslint', + useEslintrc: false, + rules: {strict: [2, 'global']} }) .on('error', done) .on('data', function(file) { @@ -38,7 +37,7 @@ describe('gulp-eslint plugin', function() { }) .end(new File({ path: 'test/fixtures/es6.js', - contents: new Buffer('(() => {\n\t$.fn.foo = (a) => `${a}b`; }());') + contents: new Buffer('(() => {\n\treturn (a) => `${a}b`; }());') })); }); @@ -68,7 +67,7 @@ describe('gulp-eslint plugin', function() { }); it('should produce expected message upon stream completion', function(done) { - eslint() + eslint({useEslintrc: false, rules: {strict: [2, 'global']}}) .on('error', done) .on('data', function(file) { should.exist(file); @@ -101,7 +100,7 @@ describe('gulp-eslint plugin', function() { it('should lint multiple streaming files', function(done) { var fileCount = 0; - var lintStream = eslint() + var lintStream = eslint({useEslintrc: false, rules: {strict: [2, 'global']}}) .on('error', done) .on('data', function(file) { should.exist(file); @@ -138,7 +137,7 @@ describe('gulp-eslint plugin', function() { }); it('should ignore files with null content', function(done) { - eslint() + eslint({useEslintrc: false, rules: {'strict': 2}}) .on('error', done) .on('data', function(file) { should.exist(file); @@ -155,7 +154,7 @@ describe('gulp-eslint plugin', function() { describe('"warnFileIgnored" option', function() { it('when true, should warn when a file is ignored by .eslintignore', function(done) { - eslint({warnFileIgnored: true}) + eslint({useEslintrc: false, warnFileIgnored: true}) .on('error', done) .on('data', function(file) { should.exist(file); @@ -174,14 +173,14 @@ describe('gulp-eslint plugin', function() { }); it('when true, should warn when a "node_modules" file is ignored', function(done) { - eslint({warnFileIgnored: true}) + eslint({useEslintrc: false, warnFileIgnored: true}) .on('error', done) .on('data', function(file) { should.exist(file); should.exist(file.eslint); file.eslint.messages.should.be.instanceof(Array).and.have.lengthOf(1); - file.eslint.messages[0] - .should.have.property('message', 'File ignored because it has a node_modules/** path'); + file.eslint.messages[0].should.have.property('message', + 'File ignored because it has a node_modules/** path'); file.eslint.errorCount.should.equal(0); file.eslint.warningCount.should.equal(1); done(); @@ -193,7 +192,7 @@ describe('gulp-eslint plugin', function() { }); it('when not true, should silently ignore files', function(done) { - eslint({warnFileIgnored: false}) + eslint({useEslintrc: false, warnFileIgnored: false}) .on('error', done) .on('data', function(file) { should.exist(file); @@ -211,7 +210,7 @@ describe('gulp-eslint plugin', function() { describe('"quiet" option', function() { it('when true, should remove warnings', function(done) { - eslint({quiet: true, rules: {'no-undef': 1, 'strict': 2}}) + eslint({quiet: true, useEslintrc: false, rules: {'no-undef': 1, 'strict': 2}}) .on('data', function(file) { should.exist(file); should.exist(file.eslint); @@ -230,7 +229,7 @@ describe('gulp-eslint plugin', function() { function warningsOnly(message) { return message.severity === 1; } - eslint({quiet: warningsOnly, rules: {'no-undef': 1, 'strict': 2}}) + eslint({quiet: warningsOnly, useEslintrc: false, rules: {'no-undef': 1, 'strict': 2}}) .on('data', function(file) { should.exist(file); should.exist(file.eslint); diff --git a/test/result.js b/test/result.js index e9c6c0e..930cfe2 100644 --- a/test/result.js +++ b/test/result.js @@ -12,7 +12,13 @@ describe('gulp-eslint result', function() { it('should provide an ESLint result', function(done) { var resultCount = 0; - var lintStream = eslint({useEslintrc: false, rules: {'no-undef': 2, 'strict': [1, 'global']}}); + var lintStream = eslint({ + useEslintrc: false, + rules: { + 'no-undef': 2, + 'strict': [1, 'global'] + } + }); lintStream .pipe(eslint.result(function(result) { @@ -174,7 +180,13 @@ describe('gulp-eslint results', function() { it('should provide ESLint results', function(done) { var resultsCalled = false; - var lintStream = eslint({useEslintrc: false, rules: {'no-undef': 2, 'strict': [1, 'global']}}); + var lintStream = eslint({ + useEslintrc: false, + rules: { + 'no-undef': 2, + 'strict': [1, 'global'] + } + }); lintStream .pipe(eslint.results(function(results) { diff --git a/test/util.js b/test/util.js index bc182ce..7d82ce3 100644 --- a/test/util.js +++ b/test/util.js @@ -2,10 +2,8 @@ 'use strict'; var File = require('vinyl'), - path = require('path'), stream = require('stream'), should = require('should'), - CLIEngine = require('eslint').CLIEngine, util = require('../util'); require('mocha'); @@ -109,7 +107,9 @@ describe('utility methods', function() { result.errorCount.should.equal(0); result.warningCount.should.equal(1); result.messages.should.be.instanceof(Array).and.have.lengthOf(1); - result.messages[0].message.should.equal('File ignored because it has a node_modules/** path'); + result.messages[0].message.should.equal( + 'File ignored because it has a node_modules/** path' + ); });