Skip to content

Commit 546aff8

Browse files
authored
fix: false positive in literal-compare-order rule (#601)
1 parent d06748d commit 546aff8

File tree

3 files changed

+12
-15
lines changed

3 files changed

+12
-15
lines changed

lib/rules/literal-compare-order.js

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,11 @@ module.exports = {
115115
}
116116

117117
/* istanbul ignore else: correctly does nothing */
118-
if (
119-
!assertVar ||
120-
utils.isComparativeAssertion(node.callee, assertVar)
121-
) {
122-
const compareActualFirst =
123-
!assertVar ||
124-
utils.shouldCompareActualFirst(node.callee, assertVar);
118+
if (utils.isComparativeAssertion(node.callee, assertVar)) {
119+
const compareActualFirst = utils.shouldCompareActualFirst(
120+
node.callee,
121+
assertVar,
122+
);
125123
checkLiteralCompareOrder(node.arguments, compareActualFirst);
126124
}
127125
}
@@ -137,10 +135,7 @@ module.exports = {
137135
});
138136
} else if (testStack.length > 0) {
139137
const assertVar = getAssertContext();
140-
if (
141-
!assertVar ||
142-
utils.isAssertion(node.callee, assertVar)
143-
) {
138+
if (utils.isAssertion(node.callee, assertVar)) {
144139
processAssertion(node, assertVar);
145140
}
146141
}

lib/utils.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ exports.getAssertionNames = getAssertionNames;
7676

7777
/**
7878
* @param {import('estree').Node} calleeNode
79-
* @param {string} assertVar
79+
* @param {string | null} assertVar
8080
* @returns {{allowedArities: number[], compareActualFirst?: boolean} | null}
8181
*/
8282
function getAssertionMetadata(calleeNode, assertVar) {
@@ -345,7 +345,7 @@ exports.getAssertContextName = function (functionExpr) {
345345

346346
/**
347347
* @param {import('estree').Node} calleeNode
348-
* @param {string} assertVar
348+
* @param {string | null} assertVar
349349
* @returns {boolean}
350350
*/
351351
exports.isAssertion = function (calleeNode, assertVar) {
@@ -368,7 +368,7 @@ exports.getAllowedArities = function (calleeNode, assertVar) {
368368

369369
/**
370370
* @param {import('estree').Node} calleeNode
371-
* @param {string} assertVar
371+
* @param {string | null} assertVar
372372
* @returns {boolean}
373373
*/
374374
exports.isComparativeAssertion = function (calleeNode, assertVar) {
@@ -379,7 +379,7 @@ exports.isComparativeAssertion = function (calleeNode, assertVar) {
379379

380380
/**
381381
* @param {import('estree').Node} calleeNode
382-
* @param {string} assertVar
382+
* @param {string | null} assertVar
383383
* @returns {boolean}
384384
*/
385385
exports.shouldCompareActualFirst = function (calleeNode, assertVar) {

tests/lib/rules/literal-compare-order.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ ruleTester.run("literal-compare-order", rule, {
8686

8787
// avoid crash in BDD-style assertions
8888
"QUnit.test('Name', function() { expect(variable).to.equal('Literal'); });",
89+
90+
"QUnit.test('Name', function() { router.on('routerDidChange', () => {}); });",
8991
],
9092
invalid: [
9193
// equal

0 commit comments

Comments
 (0)