From e055c1b8abb7016bb08e32edb4bd4a580743aa83 Mon Sep 17 00:00:00 2001 From: Kevin Partington Date: Mon, 11 May 2020 19:14:43 -0500 Subject: [PATCH] Fix: literal-compare-order crash on BDD-style assertions (fixes #74) --- lib/utils.js | 1 + tests/lib/rules/literal-compare-order.js | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/utils.js b/lib/utils.js index 3c92e52d..0205577a 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -62,6 +62,7 @@ const ASSERTION_METADATA = { function getAssertionMetadata(calleeNode, assertVar) { if (calleeNode.type === "MemberExpression") { return calleeNode.object && + calleeNode.object.type === "Identifier" && calleeNode.object.name === assertVar && calleeNode.property && Object.hasOwnProperty.call(ASSERTION_METADATA, calleeNode.property.name) && diff --git a/tests/lib/rules/literal-compare-order.js b/tests/lib/rules/literal-compare-order.js index 8c3de9b1..c9c0d046 100644 --- a/tests/lib/rules/literal-compare-order.js +++ b/tests/lib/rules/literal-compare-order.js @@ -74,7 +74,10 @@ ruleTester.run("literal-compare-order", rule, { wrap("notPropEqual(variable, 'Literal');"), wrap("notPropEqual(variable, 'Literal', 'Message');"), wrap("assert.notPropEqual(variable, 'Literal');"), - wrap("assert.notPropEqual(variable, 'Literal', 'Message');") + wrap("assert.notPropEqual(variable, 'Literal', 'Message');"), + + // avoid crash in BDD-style assertions + "QUnit.test('Name', function() { expect(variable).to.equal('Literal'); });" ], invalid: [ // equal