diff options
author | Shobhit Chittora <chittorashobhit@gmail.com> | 2017-10-31 23:42:56 +0300 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-02-01 13:40:53 +0300 |
commit | 2d6912a46bf6f56a4f7b1d354680ad318cc7a153 (patch) | |
tree | cd589c31450d458635c31055609c5322e068ed6f /tools/eslint-rules | |
parent | 300f5ce3461f01daa994a4a4f78546f164d28ca8 (diff) |
tools: auto fix custom eslint rule
1. Extends tests
2. Refactors code
3. Adds fixer
Refs: #16636
PR-URL: https://github.com/nodejs/node/pull/16652
Refs: https://github.com/nodejs/node/issues/16636
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'tools/eslint-rules')
-rw-r--r-- | tools/eslint-rules/prefer-assert-methods.js | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tools/eslint-rules/prefer-assert-methods.js b/tools/eslint-rules/prefer-assert-methods.js index 0604fd3ed99..2917d40de40 100644 --- a/tools/eslint-rules/prefer-assert-methods.js +++ b/tools/eslint-rules/prefer-assert-methods.js @@ -1,3 +1,7 @@ +/** + * @fileoverview Prohibit the use of assert operators ( ===, !==, ==, != ) + */ + 'use strict'; const astSelector = 'ExpressionStatement[expression.type="CallExpression"]' + @@ -21,7 +25,19 @@ module.exports = function(context) { const arg = node.expression.arguments[0]; const assertMethod = preferedAssertMethod[arg.operator]; if (assertMethod) { - context.report(node, parseError(assertMethod, arg.operator)); + context.report({ + node, + message: parseError(assertMethod, arg.operator), + fix: (fixer) => { + const sourceCode = context.getSourceCode(); + const left = sourceCode.getText(arg.left); + const right = sourceCode.getText(arg.right); + return fixer.replaceText( + node, + `assert.${assertMethod}(${left}, ${right});` + ); + } + }); } } }; |