From aee4481d3c0f1bbfa4cbe3d7dd07dc4223b87185 Mon Sep 17 00:00:00 2001 From: Gary King Date: Sat, 29 Sep 2018 17:57:44 -0400 Subject: [PATCH 1/2] fix: only run if `expect` is used --- rules/prefer-strict-equal.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/rules/prefer-strict-equal.js b/rules/prefer-strict-equal.js index 838438913..45092b3df 100644 --- a/rules/prefer-strict-equal.js +++ b/rules/prefer-strict-equal.js @@ -1,6 +1,8 @@ 'use strict'; +const expectCase = require('./util').expectCase; const getDocsUrl = require('./util').getDocsUrl; +const method = require('./util').method; module.exports = { meta: { @@ -12,14 +14,19 @@ module.exports = { create(context) { return { CallExpression(node) { - const propertyName = node.callee.property && node.callee.property.name; + if (!expectCase(node)) { + return; + } + + const propertyName = method(node) && method(node).name; + if (propertyName === 'toEqual') { context.report({ fix(fixer) { - return [fixer.replaceText(node.callee.property, 'toStrictEqual')]; + return [fixer.replaceText(method(node), 'toStrictEqual')]; }, message: 'Use toStrictEqual() instead', - node: node.callee.property, + node: method(node), }); } }, From 3212910194fb8bba25a8d75c23499e028e37a4fb Mon Sep 17 00:00:00 2001 From: Gary King Date: Sun, 30 Sep 2018 15:53:13 -0400 Subject: [PATCH 2/2] test: add a test case where this rule should not apply at all Since it isn't using proper Jest `expect` syntax. --- rules/__tests__/prefer-strict-equal.test.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rules/__tests__/prefer-strict-equal.test.js b/rules/__tests__/prefer-strict-equal.test.js index 8104f43d8..978a2a841 100644 --- a/rules/__tests__/prefer-strict-equal.test.js +++ b/rules/__tests__/prefer-strict-equal.test.js @@ -6,7 +6,10 @@ const rule = require('../prefer-strict-equal'); const ruleTester = new RuleTester(); ruleTester.run('prefer-strict-equal', rule, { - valid: ['expect(something).toStrictEqual(somethingElse);'], + valid: [ + 'expect(something).toStrictEqual(somethingElse);', + "a().toEqual('b')", + ], invalid: [ { code: 'expect(something).toEqual(somethingElse);',