diff --git a/lib/rules/jsx-curly-brace-presence.js b/lib/rules/jsx-curly-brace-presence.js index 0f17143ffa..5bc3b744db 100755 --- a/lib/rules/jsx-curly-brace-presence.js +++ b/lib/rules/jsx-curly-brace-presence.js @@ -405,13 +405,19 @@ module.exports = { } }, + 'JSXAttribute > JSXExpressionContainer > JSXFragment'(node) { + if (userConfig.propElementValues === OPTION_NEVER) { + reportUnnecessaryCurly(node.parent); + } + }, + JSXExpressionContainer(node) { if (shouldCheckForUnnecessaryCurly(node, userConfig)) { lintUnnecessaryCurly(node); } }, - 'JSXAttribute > JSXElement, Literal, JSXText'(node) { + 'JSXAttribute > JSXElement, JSXAttribute > JSXFragment, Literal, JSXText'(node) { if (shouldCheckForMissingCurly(node, userConfig)) { reportMissingCurly(node); } diff --git a/tests/lib/rules/jsx-curly-brace-presence.js b/tests/lib/rules/jsx-curly-brace-presence.js index 59d756737b..671afc0bb3 100755 --- a/tests/lib/rules/jsx-curly-brace-presence.js +++ b/tests/lib/rules/jsx-curly-brace-presence.js @@ -932,6 +932,13 @@ ruleTester.run('jsx-curly-brace-presence', rule, { output: `} />`, errors: [{ messageId: 'missingCurly' }], }, + { + code: `
/>`, + options: [{ props: 'always', children: 'always', propElementValues: 'always' }], + features: ['no-ts'], + output: `
} />`, + errors: [{ messageId: 'missingCurly' }], + }, { code: `} />`, options: [{ props: 'never', children: 'never', propElementValues: 'never' }], @@ -939,6 +946,13 @@ ruleTester.run('jsx-curly-brace-presence', rule, { output: ` />`, errors: [{ messageId: 'unnecessaryCurly' }], }, + { + code: `
} />`, + options: [{ props: 'never', children: 'never', propElementValues: 'never' }], + features: ['no-ts'], + output: `
/>`, + errors: [{ messageId: 'unnecessaryCurly' }], + }, { code: ``, options: [{ props: 'never', children: 'never', propElementValues: 'never' }],