File tree Expand file tree Collapse file tree 2 files changed +21
-3
lines changed Expand file tree Collapse file tree 2 files changed +21
-3
lines changed Original file line number Diff line number Diff line change @@ -249,6 +249,21 @@ describe('compare', () => {
249
249
} ) ,
250
250
) . toBe ( 0 )
251
251
} )
252
+
253
+ it ( 'gives maximum priority to void' , ( ) => {
254
+ expect (
255
+ compare ( createTestNode ( { name : 'a' } ) , createTestNode ( { name : '' } ) , {
256
+ ...compareOptions ,
257
+ alphabet : 'a' ,
258
+ } ) ,
259
+ ) . toBe ( 1 )
260
+ expect (
261
+ compare ( createTestNode ( { name : '' } ) , createTestNode ( { name : 'a' } ) , {
262
+ ...compareOptions ,
263
+ alphabet : 'a' ,
264
+ } ) ,
265
+ ) . toBe ( - 1 )
266
+ } )
252
267
} )
253
268
254
269
let createTestNode = ( { name } : { name : string } ) : SortingNode =>
Original file line number Diff line number Diff line change @@ -122,9 +122,9 @@ let getCustomSortingFunction = <T extends SortingNode>(
122
122
return ( aNode : T , bNode : T ) => {
123
123
let aValue = formatString ( nodeValueGetter ( aNode ) )
124
124
let bValue = formatString ( nodeValueGetter ( bNode ) )
125
+ let minLength = Math . min ( aValue . length , bValue . length )
125
126
// Iterate character by character
126
- // eslint-disable-next-line unicorn/no-for-loop
127
- for ( let i = 0 ; i < aValue . length ; i ++ ) {
127
+ for ( let i = 0 ; i < minLength ; i ++ ) {
128
128
let aCharacter = aValue [ i ]
129
129
let bCharacter = bValue [ i ]
130
130
let indexOfA = indexByCharacters . get ( aCharacter )
@@ -135,7 +135,10 @@ let getCustomSortingFunction = <T extends SortingNode>(
135
135
return convertBooleanToSign ( indexOfA - indexOfB > 0 )
136
136
}
137
137
}
138
- return 0
138
+ if ( aValue . length === bValue . length ) {
139
+ return 0
140
+ }
141
+ return convertBooleanToSign ( aValue . length - bValue . length > 0 )
139
142
}
140
143
}
141
144
You can’t perform that action at this time.
0 commit comments