diff --git a/lib/rules/jsx-curly-brace-presence.js b/lib/rules/jsx-curly-brace-presence.js index 490e18bc2c..2a95d57438 100755 --- a/lib/rules/jsx-curly-brace-presence.js +++ b/lib/rules/jsx-curly-brace-presence.js @@ -128,6 +128,10 @@ module.exports = { expression.quasis[0].value.raw : expression.raw.substring(1, expression.raw.length - 1) }"`; + } else if (jsxUtil.isJSX(expression)) { + const sourceCode = context.getSourceCode(); + + textToReplace = sourceCode.getText(expression); } else { textToReplace = expressionType === 'TemplateLiteral' ? expression.quasis[0].value.cooked : expression.value; @@ -190,6 +194,8 @@ module.exports = { ) ) { reportUnnecessaryCurly(JSXExpressionNode); + } else if (jsxUtil.isJSX(expression)) { + reportUnnecessaryCurly(JSXExpressionNode); } } diff --git a/tests/lib/rules/jsx-curly-brace-presence.js b/tests/lib/rules/jsx-curly-brace-presence.js index baeff71ab4..05aa991097 100755 --- a/tests/lib/rules/jsx-curly-brace-presence.js +++ b/tests/lib/rules/jsx-curly-brace-presence.js @@ -96,7 +96,8 @@ ruleTester.run('jsx-curly-brace-presence', rule, { options: [{props: 'never'}] }, { - code: '{}' + code: '{}', + options: [{children: 'always'}] }, { code: '{[]}' @@ -313,6 +314,17 @@ ruleTester.run('jsx-curly-brace-presence', rule, { options: [{props: 'never'}], errors: [{message: unnecessaryCurlyMessage}] }, + { + code: '{}', + output: '', + options: [{children: 'never'}], + errors: [{message: unnecessaryCurlyMessage}] + }, + { + code: '{}', + output: '', + errors: [{message: unnecessaryCurlyMessage}] + }, { code: 'foo', output: 'foo',