From 594937242811ccea25c18cc52bebec2ca1f7ba9e Mon Sep 17 00:00:00 2001 From: Yacine Hmito Date: Sat, 9 May 2020 07:33:55 +0200 Subject: [PATCH 1/4] Failing test cases --- tests/lib/rules/jsx-pascal-case.js | 43 ++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/tests/lib/rules/jsx-pascal-case.js b/tests/lib/rules/jsx-pascal-case.js index 8428783818..593b5ba40f 100644 --- a/tests/lib/rules/jsx-pascal-case.js +++ b/tests/lib/rules/jsx-pascal-case.js @@ -65,18 +65,33 @@ ruleTester.run('jsx-pascal-case', rule, { code: '' }, { code: '' + }, { + code: '<__this.TestComponent />' }, { code: '' }, { - code: '', - options: [{ignore: ['IGNORED']}] + code: '' + }, { + code: '<__ns:TestComponent />' }, { code: '<$ />' }, { code: '<_ />' + }, { + code: '
' + }, { + code: '' + }, { + code: '' + }, { + code: '', + options: [{ignore: ['IGNORED']}] }], invalid: [{ + code: '', + errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] + }, { code: '', errors: [{message: 'Imported JSX component Test_component must be in PascalCase'}] }, { @@ -85,6 +100,27 @@ ruleTester.run('jsx-pascal-case', rule, { }, { code: '', errors: [{message: 'Imported JSX component YMCA must be in PascalCase'}] + }, { + code: '<$a />', + errors: [{message: 'Imported JSX component $a must be in PascalCase'}] + }, { + code: '', + errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] + }, { + code: '', + errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] + }, { + code: '<__this.testComponent />', + errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] + }, { + code: '', + errors: [{message: 'Imported JSX component ns:testComponent must be in PascalCase'}] + }, { + code: '', + errors: [{message: 'Imported JSX component _Ns:testComponent must be in PascalCase'}] + }, { + code: '<__ns:testComponent />', + errors: [{message: 'Imported JSX component __ns:testComponent must be in PascalCase'}] }, { code: '<_TEST_COMPONENT />', options: [{allowAllCaps: true}], @@ -97,8 +133,5 @@ ruleTester.run('jsx-pascal-case', rule, { code: '<__ />', options: [{allowAllCaps: true}], errors: [{message: 'Imported JSX component __ must be in PascalCase or SCREAMING_SNAKE_CASE'}] - }, { - code: '<$a />', - errors: [{message: 'Imported JSX component $a must be in PascalCase'}] }] }); From 19f3f487a7fb64eb978c416b3d39f75351de7365 Mon Sep 17 00:00:00 2001 From: Yacine Hmito Date: Sat, 9 May 2020 07:45:10 +0200 Subject: [PATCH 2/4] Change test cases to fit comment in #1334 --- tests/lib/rules/jsx-pascal-case.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/lib/rules/jsx-pascal-case.js b/tests/lib/rules/jsx-pascal-case.js index 593b5ba40f..7031040217 100644 --- a/tests/lib/rules/jsx-pascal-case.js +++ b/tests/lib/rules/jsx-pascal-case.js @@ -79,10 +79,6 @@ ruleTester.run('jsx-pascal-case', rule, { code: '<_ />' }, { code: '
' - }, { - code: '' - }, { - code: '' }, { code: '', options: [{ignore: ['IGNORED']}] @@ -103,6 +99,9 @@ ruleTester.run('jsx-pascal-case', rule, { }, { code: '<$a />', errors: [{message: 'Imported JSX component $a must be in PascalCase'}] + }, { + code: '', + errors: [{message: 'Imported JSX component bar must be in PascalCase'}] }, { code: '', errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] @@ -112,12 +111,15 @@ ruleTester.run('jsx-pascal-case', rule, { }, { code: '<__this.testComponent />', errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] + }, { + code: '', + errors: [{message: 'Imported JSX component svg:path must be in PascalCase'}] }, { code: '', errors: [{message: 'Imported JSX component ns:testComponent must be in PascalCase'}] }, { code: '', - errors: [{message: 'Imported JSX component _Ns:testComponent must be in PascalCase'}] + errors: [{message: 'Imported JSX component Ns:testComponent must be in PascalCase'}] }, { code: '<__ns:testComponent />', errors: [{message: 'Imported JSX component __ns:testComponent must be in PascalCase'}] From 6bf3609d4460319dc295a1f6e1cc9d7228cfe4b7 Mon Sep 17 00:00:00 2001 From: Yacine Hmito Date: Sat, 9 May 2020 08:03:29 +0200 Subject: [PATCH 3/4] Never error when XML namespaces are involved --- tests/lib/rules/jsx-pascal-case.js | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/tests/lib/rules/jsx-pascal-case.js b/tests/lib/rules/jsx-pascal-case.js index 7031040217..d5d0261d76 100644 --- a/tests/lib/rules/jsx-pascal-case.js +++ b/tests/lib/rules/jsx-pascal-case.js @@ -67,18 +67,24 @@ ruleTester.run('jsx-pascal-case', rule, { code: '' }, { code: '<__this.TestComponent />' - }, { - code: '' - }, { - code: '' - }, { - code: '<__ns:TestComponent />' }, { code: '<$ />' }, { code: '<_ />' }, { code: '
' + }, { + code: '' + }, { + code: '' + }, { + code: '' + }, { + code: '' + }, { + code: '' + }, { + code: '<__ns:testComponent />' }, { code: '', options: [{ignore: ['IGNORED']}] @@ -111,18 +117,6 @@ ruleTester.run('jsx-pascal-case', rule, { }, { code: '<__this.testComponent />', errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] - }, { - code: '', - errors: [{message: 'Imported JSX component svg:path must be in PascalCase'}] - }, { - code: '', - errors: [{message: 'Imported JSX component ns:testComponent must be in PascalCase'}] - }, { - code: '', - errors: [{message: 'Imported JSX component Ns:testComponent must be in PascalCase'}] - }, { - code: '<__ns:testComponent />', - errors: [{message: 'Imported JSX component __ns:testComponent must be in PascalCase'}] }, { code: '<_TEST_COMPONENT />', options: [{allowAllCaps: true}], From 48ad96a8641512db66fe6d3eb9ffabacb98ebf13 Mon Sep 17 00:00:00 2001 From: Yacine Hmito Date: Sun, 10 May 2020 00:58:15 +0200 Subject: [PATCH 4/4] Fix test cases --- tests/lib/rules/jsx-pascal-case.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/lib/rules/jsx-pascal-case.js b/tests/lib/rules/jsx-pascal-case.js index 87bc6c570a..fefd8a7bef 100644 --- a/tests/lib/rules/jsx-pascal-case.js +++ b/tests/lib/rules/jsx-pascal-case.js @@ -78,28 +78,31 @@ ruleTester.run('jsx-pascal-case', rule, { }, { code: '<_ />' }, { - code: '
' - }, { + // The rule must not warn on components with a namespace + // because this pattern is handled by jsx-no-namespace code: '' }, { code: '' }, { code: '' + }, { + code: '<__ns:testComponent />' + }, { + code: '' + }, { + code: '' + }, { + code: '<__ns:TestComponent />' }, { code: '' }, { code: '' - }, { - code: '<__ns:testComponent />' }, { code: '', options: [{ignore: ['IGNORED']}] }], invalid: [{ - code: '', - errors: [{message: 'Imported JSX component testComponent must be in PascalCase'}] - }, { code: '', errors: [{message: 'Imported JSX component Test_component must be in PascalCase'}] }, {