From b595575ccef7bceb04c6317fb903f4bedeb19a69 Mon Sep 17 00:00:00 2001 From: alonstern Date: Sun, 1 Aug 2021 02:28:27 +0300 Subject: [PATCH] fix(eslint-plugin): [no-unnecessary-boolean-literal-compare] incorrect fix when condition is reversed (#3581) --- .../no-unnecessary-boolean-literal-compare.ts | 2 +- ...nnecessary-boolean-literal-compare.test.ts | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/no-unnecessary-boolean-literal-compare.ts b/packages/eslint-plugin/src/rules/no-unnecessary-boolean-literal-compare.ts index fe1fd24cc4f..55719d857da 100644 --- a/packages/eslint-plugin/src/rules/no-unnecessary-boolean-literal-compare.ts +++ b/packages/eslint-plugin/src/rules/no-unnecessary-boolean-literal-compare.ts @@ -186,7 +186,7 @@ export default util.createRule({ range: expression.range[0] < against.range[0] ? [expression.range[1], against.range[1]] - : [against.range[1], expression.range[1]], + : [against.range[0], expression.range[0]], }; } diff --git a/packages/eslint-plugin/tests/rules/no-unnecessary-boolean-literal-compare.test.ts b/packages/eslint-plugin/tests/rules/no-unnecessary-boolean-literal-compare.test.ts index 36eb36033de..7896fe00de8 100644 --- a/packages/eslint-plugin/tests/rules/no-unnecessary-boolean-literal-compare.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unnecessary-boolean-literal-compare.test.ts @@ -224,5 +224,39 @@ ruleTester.run('no-unnecessary-boolean-literal-compare', rule, { } `, }, + { + code: ` + declare const varBoolean: boolean; + if (false !== varBoolean) { + } + `, + errors: [ + { + messageId: 'negated', + }, + ], + output: ` + declare const varBoolean: boolean; + if (varBoolean) { + } + `, + }, + { + code: ` + declare const varBoolean: boolean; + if (true !== varBoolean) { + } + `, + errors: [ + { + messageId: 'negated', + }, + ], + output: ` + declare const varBoolean: boolean; + if (!varBoolean) { + } + `, + }, ], });