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'