From 03cdf0d44de368ea5b0fac6348d90697d0ff37b3 Mon Sep 17 00:00:00 2001 From: Anix Date: Mon, 23 Mar 2020 10:57:42 +0000 Subject: [PATCH] Chore: fixed false negative and added test --- lib/rules/yoda.js | 8 ++++---- tests/lib/rules/yoda.js | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/rules/yoda.js b/lib/rules/yoda.js index 20f9ce8850b..338849eabd5 100644 --- a/lib/rules/yoda.js +++ b/lib/rules/yoda.js @@ -235,7 +235,7 @@ module.exports = { function isBetweenTest() { let leftLiteral, rightLiteral; - if (node.operator === "&&") { + if (node.operator === "&&" && same(left.right, right.left)) { leftLiteral = getNormalizedLiteral(left.left); rightLiteral = getNormalizedLiteral(right.right); @@ -247,7 +247,7 @@ module.exports = { return true; } - if (leftLiteral.value <= rightLiteral.value && same(left.right, right.left)) { + if (leftLiteral.value <= rightLiteral.value) { return true; } } @@ -261,7 +261,7 @@ module.exports = { function isOutsideTest() { let leftLiteral, rightLiteral; - if (node.operator === "||") { + if (node.operator === "||" && same(left.left, right.right)) { leftLiteral = getNormalizedLiteral(left.right); rightLiteral = getNormalizedLiteral(right.left); @@ -273,7 +273,7 @@ module.exports = { return true; } - if ((leftLiteral.value <= rightLiteral.value) && same(left.left, right.right)) { + if ((leftLiteral.value <= rightLiteral.value)) { return true; } } diff --git a/tests/lib/rules/yoda.js b/tests/lib/rules/yoda.js index f0e239a1dc5..a149b06886e 100644 --- a/tests/lib/rules/yoda.js +++ b/tests/lib/rules/yoda.js @@ -1094,6 +1094,18 @@ ruleTester.run("yoda", rule, { type: "BinaryExpression" } ] + }, + { + code: "if (0 < a && b < max) {}", + output: "if (a > 0 && b < max) {}", + options: ["never", { exceptRange: true }], + errors: [ + { + messageId: "expected", + data: { expectedSide: "right", operator: "<" }, + type: "BinaryExpression" + } + ] } ]