diff --git a/.eslintrc.json b/.eslintrc.json index b2e32d9..4b9bc39 100755 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,6 @@ { "extends": "eslint:recommended", + "parserOptions": { "ecmaVersion": 6 }, "env": { "mocha": true, "node": true diff --git a/lib/rules/missing-assertion.js b/lib/rules/missing-assertion.js index 3858b33..fa92da7 100755 --- a/lib/rules/missing-assertion.js +++ b/lib/rules/missing-assertion.js @@ -1,16 +1,16 @@ -"use strict"; +'use strict'; module.exports = function(context) { return { - ExpressionStatement: function(node) { - var expression = node.expression; + ExpressionStatement(node) { + let {expression} = node; if (expression.type !== 'CallExpression') return; - var callee = expression.callee; + let {callee} = expression; if (callee.type === 'Identifier' && callee.name === 'expect') { context.report({ - node: node, + node, message: 'expect(...) used without assertion' }) } diff --git a/lib/rules/no-inner-compare.js b/lib/rules/no-inner-compare.js index 28d7b78..27db906 100755 --- a/lib/rules/no-inner-compare.js +++ b/lib/rules/no-inner-compare.js @@ -1,8 +1,8 @@ -"use strict"; +'use strict'; -var findExpectCall = require('../util/find-expect-call'); +const findExpectCall = require('../util/find-expect-call'); -var HINTS = { +const HINTS = { '==': 'to.equal()', '!=': 'to.not.equal()', '===': 'to.equal()', @@ -15,28 +15,28 @@ var HINTS = { module.exports = function(context) { return { - ExpressionStatement: function(node) { - var expression = node.expression; + ExpressionStatement(node) { + let {expression} = node; if (expression.type !== 'MemberExpression' && expression.type !== 'CallExpression') return; - var expect = findExpectCall(expression); + let expect = findExpectCall(expression); if (!expect) return; - var args = expect.arguments; - var firstArgument = args[0]; + let args = expect.arguments; + let [firstArgument] = args; if (!firstArgument || firstArgument.type !== 'BinaryExpression') return; - var hint = HINTS[firstArgument.operator]; + let hint = HINTS[firstArgument.operator]; if (!hint) return; context.report({ node: firstArgument, - message: 'operator "' + firstArgument.operator + '" used in expect(), use "' + hint + '" instead' - }) + message: `operator "${firstArgument.operator}" used in expect(), use "${hint}" instead` + }); } }; }; diff --git a/lib/rules/terminating-properties.js b/lib/rules/terminating-properties.js index ee4e4f9..e569040 100755 --- a/lib/rules/terminating-properties.js +++ b/lib/rules/terminating-properties.js @@ -1,8 +1,8 @@ -"use strict"; +'use strict'; -var findExpectCall = require('../util/find-expect-call'); +const findExpectCall = require('../util/find-expect-call'); -var PROPERTY_TERMINATORS = [ +const PROPERTY_TERMINATORS = [ 'ok', 'true', 'false', @@ -14,38 +14,38 @@ var PROPERTY_TERMINATORS = [ ]; module.exports = function(context) { - var options = context.options[0] || {}; - var additionalTerminators = options.properties || []; - var validTerminators = PROPERTY_TERMINATORS.concat(additionalTerminators); + let options = context.options[0] || {}; + let additionalTerminators = options.properties || []; + let validTerminators = [...PROPERTY_TERMINATORS, ...additionalTerminators]; return { - ExpressionStatement: function(node) { - var expression = node.expression; + ExpressionStatement(node) { + let {expression} = node; if (expression.type !== 'CallExpression') return; - var callee = expression.callee; + let {callee} = expression; if (callee.type !== 'MemberExpression') return; - var property = callee.property; - if (property.type !== 'Identifier' || validTerminators.indexOf(property.name) === -1) + let {property} = callee; + if (property.type !== 'Identifier' || !validTerminators.includes(property.name)) return; - var expectCall = findExpectCall(callee.object); + let expectCall = findExpectCall(callee.object); if (!expectCall) return; - var source = context.getSourceCode(); + let source = context.getSourceCode(); - var calleeText = source.getText(callee); - var expectText = source.getText(expectCall); - var assertionText = calleeText.substr(expectText.length + 1); + let calleeText = source.getText(callee); + let expectText = source.getText(expectCall); + let assertionText = calleeText.substr(expectText.length + 1); context.report({ node: property, - message: '"' + assertionText + '" used as function' - }) + message: `"${assertionText}" used as function` + }); } }; }; diff --git a/tests/index.js b/tests/index.js index ea163a6..beab844 100755 --- a/tests/index.js +++ b/tests/index.js @@ -1,14 +1,14 @@ /* eslint-env mocha */ 'use strict'; -var plugin = require('..'); +const plugin = require('..'); -var assert = require('assert'); -var fs = require('fs'); -var path = require('path'); +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); -var rules = fs.readdirSync(path.resolve(__dirname, '../lib/rules/')) - .map(function(f) { +let rules = fs.readdirSync(path.resolve(__dirname, '../lib/rules/')) + .map((f) => { return path.basename(f, '.js'); }); diff --git a/tests/lib/rules/missing-assertions.js b/tests/lib/rules/missing-assertions.js index 352b991..dd654f2 100755 --- a/tests/lib/rules/missing-assertions.js +++ b/tests/lib/rules/missing-assertions.js @@ -1,9 +1,9 @@ 'use strict'; -var rule = require('../../../lib/rules/missing-assertion'); -var RuleTester = require('eslint').RuleTester; +const rule = require('../../../lib/rules/missing-assertion'); +const {RuleTester} = require('eslint'); -var ruleTester = new RuleTester(); +let ruleTester = new RuleTester(); ruleTester.run('missing-assertion', rule, { valid: [{ code: [ diff --git a/tests/lib/rules/no-inner-compare.js b/tests/lib/rules/no-inner-compare.js index 339d4c3..2d429a7 100755 --- a/tests/lib/rules/no-inner-compare.js +++ b/tests/lib/rules/no-inner-compare.js @@ -1,9 +1,9 @@ 'use strict'; -var rule = require('../../../lib/rules/no-inner-compare'); -var RuleTester = require('eslint').RuleTester; +const rule = require('../../../lib/rules/no-inner-compare'); +const {RuleTester} = require('eslint'); -var ruleTester = new RuleTester(); +let ruleTester = new RuleTester(); ruleTester.run('no-inner-compare', rule, { valid: [{ code: 'expect(true).to.be.ok;' diff --git a/tests/lib/rules/terminating-properties.js b/tests/lib/rules/terminating-properties.js index de5c29e..b11b679 100755 --- a/tests/lib/rules/terminating-properties.js +++ b/tests/lib/rules/terminating-properties.js @@ -1,9 +1,9 @@ 'use strict'; -var rule = require('../../../lib/rules/terminating-properties'); -var RuleTester = require('eslint').RuleTester; +const rule = require('../../../lib/rules/terminating-properties'); +const {RuleTester} = require('eslint'); -var ruleTester = new RuleTester(); +let ruleTester = new RuleTester(); ruleTester.run('terminating-properties', rule, { valid: [{ code: [ diff --git a/tests/lib/util/find-expect-call.js b/tests/lib/util/find-expect-call.js index 1a0b282..27fb24d 100644 --- a/tests/lib/util/find-expect-call.js +++ b/tests/lib/util/find-expect-call.js @@ -1,22 +1,22 @@ 'use strict'; -var importFrom = require('import-from'); -var expect = require('chai').expect; -var espree = importFrom(require.resolve('eslint'), 'espree'); -var findExpectCall = require('../../../lib/util/find-expect-call'); +const importFrom = require('import-from'); +const {expect} = require('chai'); +const espree = importFrom(require.resolve('eslint'), 'espree'); +const findExpectCall = require('../../../lib/util/find-expect-call'); describe('find-expect-call util', function () { it('Finds expect statements which are considered member expressions', function () { - var code = 'expect(true).to.be.ok;'; - var ast = espree.parse(code); - var result = findExpectCall(ast.body[0].expression); + let code = 'expect(true).to.be.ok;'; + let ast = espree.parse(code); + let result = findExpectCall(ast.body[0].expression); expect(result).to.be.an('object'); }); it('Finds expect statements which are considered recursive call expressions', function () { - var code = 'expect(true).to.equal(true);'; - var ast = espree.parse(code); - var result = findExpectCall(ast.body[0].expression); + let code = 'expect(true).to.equal(true);'; + let ast = espree.parse(code); + let result = findExpectCall(ast.body[0].expression); expect(result).to.be.an('object'); }); });