Skip to content

Commit 398b7d7

Browse files
tanmoyopenrootljharb
authored andcommitted
[fix] jsx-sort-props: use localCompare rather than comparison operator
Fixes #2381.
1 parent e7f7e89 commit 398b7d7

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

lib/rules/jsx-sort-props.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ module.exports = {
342342
}
343343
}
344344

345-
if (!noSortAlphabetically && currentPropName < previousPropName) {
345+
if (!noSortAlphabetically && previousPropName.localeCompare(currentPropName) > 0) {
346346
context.report({
347347
node: decl.name,
348348
message: 'Props should be sorted alphabetically',

tests/lib/rules/jsx-sort-props.js

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,11 @@ ruleTester.run('jsx-sort-props', rule, {
109109
{code: '<App a="c" b="b" c="a" />;'},
110110
{code: '<App {...this.props} a="c" b="b" c="a" />;'},
111111
{code: '<App c="a" {...this.props} a="c" b="b" />;'},
112-
{code: '<App A a />;'},
112+
{code: '<App a A />;'},
113+
{code: '<App aa aB />;'},
114+
{code: '<App aA aB />;'},
115+
{code: '<App aaa aB />;'},
116+
{code: '<App a aa aB />;'},
113117
// Ignoring case
114118
{code: '<App a A />;', options: ignoreCaseArgs},
115119
{code: '<App a B c />;', options: ignoreCaseArgs},
@@ -165,6 +169,31 @@ ruleTester.run('jsx-sort-props', rule, {
165169
errors: [expectedError],
166170
output: '<App a b />;'
167171
},
172+
{
173+
code: '<App aB a />;',
174+
errors: [expectedError],
175+
output: '<App a aB />;'
176+
},
177+
{
178+
code: '<App A a />;',
179+
errors: [expectedError],
180+
output: '<App a A />;'
181+
},
182+
{
183+
code: '<App aB aA />;',
184+
errors: [expectedError],
185+
output: '<App aA aB />;'
186+
},
187+
{
188+
code: '<App aaB aA />;',
189+
errors: [expectedError],
190+
output: '<App aA aaB />;'
191+
},
192+
{
193+
code: '<App aaB aaa aA a />;',
194+
errors: [expectedError, expectedError, expectedError],
195+
output: '<App a aA aaa aaB />;'
196+
},
168197
{
169198
code: '<App {...this.props} b a />;',
170199
errors: [expectedError],
@@ -175,11 +204,6 @@ ruleTester.run('jsx-sort-props', rule, {
175204
errors: [expectedError],
176205
output: '<App c {...this.props} a b />;'
177206
},
178-
{
179-
code: '<App a A />;',
180-
errors: [expectedError],
181-
output: '<App a A />;'
182-
},
183207
{
184208
code: '<App B a />;',
185209
options: ignoreCaseArgs,

0 commit comments

Comments
 (0)