From c65b79ecd8068fc432707e6246c4b41274f3a44b Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 29 Jun 2020 13:09:58 -0700 Subject: [PATCH] [Fix] `jsx-pascal-case`: fix a false positive with "H1" Fixes #2683; caused by #2636. --- lib/rules/jsx-pascal-case.js | 20 ++++++++++---------- tests/lib/rules/jsx-pascal-case.js | 2 ++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/rules/jsx-pascal-case.js b/lib/rules/jsx-pascal-case.js index c8be42538e..03e3602fd8 100644 --- a/lib/rules/jsx-pascal-case.js +++ b/lib/rules/jsx-pascal-case.js @@ -28,17 +28,17 @@ function testPascalCase(name) { if (!testUpperCase(name.charAt(0))) { return false; } - let atLeastOneLowerCase = false; - for (let i = 1; i < name.length; i += 1) { - const char = name.charAt(i); - if (!(char.toLowerCase() !== char.toUpperCase() || testDigit(char))) { - return false; - } - if (!atLeastOneLowerCase) { - atLeastOneLowerCase = testLowerCase(char); - } + const anyNonAlphaNumeric = Array.prototype.some.call( + name.slice(1), + (char) => char.toLowerCase() === char.toUpperCase() && !testDigit(char) + ); + if (anyNonAlphaNumeric) { + return false; } - return atLeastOneLowerCase; + return Array.prototype.some.call( + name.slice(1), + (char) => testLowerCase(char) || testDigit(char) + ); } function testAllCaps(name) { diff --git a/tests/lib/rules/jsx-pascal-case.js b/tests/lib/rules/jsx-pascal-case.js index af9d914d55..beb12f85c7 100644 --- a/tests/lib/rules/jsx-pascal-case.js +++ b/tests/lib/rules/jsx-pascal-case.js @@ -80,6 +80,8 @@ ruleTester.run('jsx-pascal-case', rule, { code: '<$ />' }, { code: '<_ />' + }, { + code: '

Hello!

' }], invalid: [{