From 72fd950415f48c9104fec908515d5659c1eeb630 Mon Sep 17 00:00:00 2001 From: toshi-toma Date: Mon, 3 Feb 2020 10:38:35 +0900 Subject: [PATCH] [Fix]`jsx-indent`: don't check literals not within JSX --- lib/rules/jsx-indent.js | 3 +++ tests/lib/rules/jsx-indent.js | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib/rules/jsx-indent.js b/lib/rules/jsx-indent.js index 7c8cbac5d2..a7c4de1a37 100644 --- a/lib/rules/jsx-indent.js +++ b/lib/rules/jsx-indent.js @@ -374,6 +374,9 @@ module.exports = { if (!node.parent) { return; } + if (node.parent.type !== 'JSXElement' && node.parent.type !== 'JSXFragment') { + return; + } const parentNodeIndent = getNodeIndent(node.parent); checkLiteralNodeIndent(node, parentNodeIndent + indentSize); } diff --git a/tests/lib/rules/jsx-indent.js b/tests/lib/rules/jsx-indent.js index 0bb6d8e877..529e5977d8 100644 --- a/tests/lib/rules/jsx-indent.js +++ b/tests/lib/rules/jsx-indent.js @@ -989,6 +989,14 @@ const Component = () => ( '' ].join('\n'), options: ['tab'] + }, { + // don't check literals not within JSX. See #2563 + code: [ + 'function foo() {', + 'const a = `aa`;', + 'const b = `b\nb`;', + '}' + ].join('\n') }], invalid: [{ @@ -2003,5 +2011,20 @@ const Component = () => ( errors: [ {message: 'Expected indentation of 1 tab character but found 2.'} ] + }, { + code: [ + '<>', + 'aaa', + '' + ].join('\n'), + parser: parsers.BABEL_ESLINT, + output: [ + '<>', + ' aaa', + '' + ].join('\n'), + errors: [ + {message: 'Expected indentation of 4 space characters but found 0.'}, + ] }] });