diff --git a/lib/rules/jsx-fragments.js b/lib/rules/jsx-fragments.js index 3417519ebb..a097adb7b7 100644 --- a/lib/rules/jsx-fragments.js +++ b/lib/rules/jsx-fragments.js @@ -29,12 +29,12 @@ module.exports = { fixable: 'code', schema: [{ - enum: ['always', 'never'] + enum: ['syntax', 'element'] }] }, create: function(context) { - const configuration = context.options[0] || 'always'; + const configuration = context.options[0] || 'syntax'; const sourceCode = context.getSourceCode(); const reactPragma = pragmaUtil.getFromContext(context); const fragmentPragma = pragmaUtil.getFragmentFromContext(context); @@ -116,7 +116,7 @@ module.exports = { } const jsxElements = []; - const fragmentNames = []; + const fragmentNames = [`${reactPragma}.${fragmentPragma}`]; // -------------------------------------------------------------------------- // Public @@ -132,7 +132,7 @@ module.exports = { return; } - if (configuration === 'never') { + if (configuration === 'element') { context.report({ node, message: `Prefer ${reactPragma}.${fragmentPragma} over fragment shorthand`, @@ -154,19 +154,17 @@ module.exports = { }, 'Program:exit'() { - const possibleFragmentNames = fragmentNames.concat([`${reactPragma}.${fragmentPragma}`]); - jsxElements.forEach(node => { const openingEl = node.openingElement; const elName = elementType(openingEl); - if (possibleFragmentNames.indexOf(elName) !== -1 || refersToReactFragment(elName)) { + if (fragmentNames.indexOf(elName) !== -1 || refersToReactFragment(elName)) { if (reportOnReactVersion(node)) { return; } const attrs = openingEl.attributes; - if (configuration === 'always' && !(attrs && attrs.length > 0)) { + if (configuration === 'syntax' && !(attrs && attrs.length > 0)) { context.report({ node, message: `Prefer fragment shorthand over ${reactPragma}.${fragmentPragma}`, diff --git a/tests/lib/rules/jsx-fragments.js b/tests/lib/rules/jsx-fragments.js index dd0c2505aa..a992bcede1 100644 --- a/tests/lib/rules/jsx-fragments.js +++ b/tests/lib/rules/jsx-fragments.js @@ -47,39 +47,39 @@ ruleTester.run('jsx-fragments', rule, { settings }, { code: '', - options: ['never'], + options: ['element'], settings }, { code: ` import React, { Fragment as Frag } from 'react'; ; `, - options: ['never'], + options: ['element'], settings }, { code: ` const F = Act.Frag; ; `, - options: ['never'], + options: ['element'], settings }, { code: ` const { Frag } = Act; ; `, - options: ['never'], + options: ['element'], settings }, { code: ` const { Frag } = require('react'); ; `, - options: ['never'], + options: ['element'], settings }, { code: '', - options: ['always'], + options: ['syntax'], settings }], @@ -99,7 +99,7 @@ ruleTester.run('jsx-fragments', rule, { }, { code: '<>', parser: 'babel-eslint', - options: ['never'], + options: ['element'], settings, errors: [{ message: 'Prefer Act.Frag over fragment shorthand' @@ -107,7 +107,7 @@ ruleTester.run('jsx-fragments', rule, { output: '' }, { code: '', - options: ['always'], + options: ['syntax'], settings, errors: [{ message: 'Prefer fragment shorthand over Act.Frag' @@ -118,7 +118,7 @@ ruleTester.run('jsx-fragments', rule, { import React, { Frag as F } from 'react'; ; `, - options: ['always'], + options: ['syntax'], settings, errors: [{ message: 'Prefer fragment shorthand over Act.Frag' @@ -132,7 +132,7 @@ ruleTester.run('jsx-fragments', rule, { import React, { Frag } from 'react'; ; `, - options: ['always'], + options: ['syntax'], settings, errors: [{ message: 'Prefer fragment shorthand over Act.Frag' @@ -146,7 +146,7 @@ ruleTester.run('jsx-fragments', rule, { const F = Act.Frag; ; `, - options: ['always'], + options: ['syntax'], settings, errors: [{ message: 'Prefer fragment shorthand over Act.Frag' @@ -160,7 +160,7 @@ ruleTester.run('jsx-fragments', rule, { const { Frag } = Act; ; `, - options: ['always'], + options: ['syntax'], settings, errors: [{ message: 'Prefer fragment shorthand over Act.Frag' @@ -174,7 +174,7 @@ ruleTester.run('jsx-fragments', rule, { const { Frag } = require('react'); ; `, - options: ['always'], + options: ['syntax'], settings, errors: [{ message: 'Prefer fragment shorthand over Act.Frag'