From d7681123fe78c64a87f52fb719e83bdb3995b7c6 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Fri, 12 Aug 2022 02:33:43 -0400 Subject: [PATCH] fix: handle spread in context.report() in require-meta-fixable (#288) --- lib/rules/require-meta-fixable.js | 7 +++---- tests/lib/rules/require-meta-fixable.js | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/rules/require-meta-fixable.js b/lib/rules/require-meta-fixable.js index e03d3ae3..d2ce03d0 100644 --- a/lib/rules/require-meta-fixable.js +++ b/lib/rules/require-meta-fixable.js @@ -73,10 +73,9 @@ module.exports = { node.callee.property.name === 'report' && (node.arguments.length > 4 || (node.arguments.length === 1 && - node.arguments[0].type === 'ObjectExpression' && - node.arguments[0].properties.some( - (prop) => utils.getKeyName(prop) === 'fix' - ))) + utils + .evaluateObjectProperties(node.arguments[0], scopeManager) + .some((prop) => utils.getKeyName(prop) === 'fix'))) ) { usesFixFunctions = true; } diff --git a/tests/lib/rules/require-meta-fixable.js b/tests/lib/rules/require-meta-fixable.js index 75de8443..8dc6e65b 100644 --- a/tests/lib/rules/require-meta-fixable.js +++ b/tests/lib/rules/require-meta-fixable.js @@ -189,7 +189,7 @@ ruleTester.run('require-meta-fixable', rule, { `, options: [{ catchNoFixerButFixableProperty: true }], }, - // Spread. + // Spread in meta. ` const extra = { 'fixable': 'code' }; module.exports = { @@ -199,6 +199,19 @@ ruleTester.run('require-meta-fixable', rule, { } }; `, + // Spread in report. + { + code: ` + module.exports = { + meta: { fixable: 'code' }, + create(context) { + const extra = { fix: foo }; + context.report({node, message, ...extra}); + } + }; + `, + options: [{ catchNoFixerButFixableProperty: true }], + }, ], invalid: [