@@ -47,7 +47,8 @@ test('it returns all sorted nodes', () => {
4747 importOrderSeparation : false ,
4848 importOrderGroupNamespaceSpecifiers : false ,
4949 importOrderSortSpecifiers : false ,
50- importOrderSideEffects : true ,
50+ importOrderSortByLength : null ,
51+ importOrderSideEffects : true
5152 } ) as ImportDeclaration [ ] ;
5253
5354 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
@@ -92,7 +93,8 @@ test('it returns all sorted nodes case-insensitive', () => {
9293 importOrderSeparation : false ,
9394 importOrderGroupNamespaceSpecifiers : false ,
9495 importOrderSortSpecifiers : false ,
95- importOrderSideEffects : true ,
96+ importOrderSortByLength : null ,
97+ importOrderSideEffects : true
9698 } ) as ImportDeclaration [ ] ;
9799
98100 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
@@ -137,7 +139,8 @@ test('it returns all sorted nodes with sort order', () => {
137139 importOrderSeparation : false ,
138140 importOrderGroupNamespaceSpecifiers : false ,
139141 importOrderSortSpecifiers : false ,
140- importOrderSideEffects : true ,
142+ importOrderSortByLength : null ,
143+ importOrderSideEffects : true
141144 } ) as ImportDeclaration [ ] ;
142145
143146 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
@@ -182,7 +185,8 @@ test('it returns all sorted nodes with sort order case-insensitive', () => {
182185 importOrderSeparation : false ,
183186 importOrderGroupNamespaceSpecifiers : false ,
184187 importOrderSortSpecifiers : false ,
185- importOrderSideEffects : true ,
188+ importOrderSortByLength : null ,
189+ importOrderSideEffects : true
186190 } ) as ImportDeclaration [ ] ;
187191 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
188192 'c' ,
@@ -226,7 +230,8 @@ test('it returns all sorted import nodes with sorted import specifiers', () => {
226230 importOrderSeparation : false ,
227231 importOrderGroupNamespaceSpecifiers : false ,
228232 importOrderSortSpecifiers : true ,
229- importOrderSideEffects : true ,
233+ importOrderSortByLength : null ,
234+ importOrderSideEffects : true
230235 } ) as ImportDeclaration [ ] ;
231236 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
232237 'XY' ,
@@ -270,7 +275,8 @@ test('it returns all sorted import nodes with sorted import specifiers with case
270275 importOrderSeparation : false ,
271276 importOrderGroupNamespaceSpecifiers : false ,
272277 importOrderSortSpecifiers : true ,
273- importOrderSideEffects : true ,
278+ importOrderSortByLength : null ,
279+ importOrderSideEffects : true
274280 } ) as ImportDeclaration [ ] ;
275281 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
276282 'c' ,
@@ -314,7 +320,8 @@ test('it returns all sorted nodes with custom third party modules', () => {
314320 importOrderCaseInsensitive : true ,
315321 importOrderGroupNamespaceSpecifiers : false ,
316322 importOrderSortSpecifiers : false ,
317- importOrderSideEffects : true ,
323+ importOrderSortByLength : null ,
324+ importOrderSideEffects : true
318325 } ) as ImportDeclaration [ ] ;
319326 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
320327 'a' ,
@@ -339,7 +346,8 @@ test('it returns all sorted nodes with namespace specifiers at the top', () => {
339346 importOrderSeparation : false ,
340347 importOrderGroupNamespaceSpecifiers : true ,
341348 importOrderSortSpecifiers : false ,
342- importOrderSideEffects : true ,
349+ importOrderSortByLength : null ,
350+ importOrderSideEffects : true
343351 } ) as ImportDeclaration [ ] ;
344352
345353 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
@@ -357,6 +365,58 @@ test('it returns all sorted nodes with namespace specifiers at the top', () => {
357365 ] ) ;
358366} ) ;
359367
368+ test ( 'it returns all sorted nodes, sorted shortest to longest' , ( ) => {
369+ const result = getImportNodes ( code )
370+ const sorted = getSortedNodes ( result , {
371+ importOrder : [ ] ,
372+ importOrderCaseInsensitive : false ,
373+ importOrderSeparation : false ,
374+ importOrderGroupNamespaceSpecifiers : false ,
375+ importOrderSortSpecifiers : false ,
376+ importOrderSideEffects : true ,
377+ importOrderSortByLength : 'asc'
378+ } ) as ImportDeclaration [ ] ;
379+ expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
380+ 'g' ,
381+ 'z' ,
382+ 'Ba' ,
383+ 'BY' ,
384+ 'Xa' ,
385+ 'XY' ,
386+ 'a' ,
387+ 'x' ,
388+ 'c' ,
389+ 'k' ,
390+ 't' ,
391+ ] ) ;
392+ } ) ;
393+
394+ test ( 'it returns all sorted nodes, sorted longest to shortest' , ( ) => {
395+ const result = getImportNodes ( code )
396+ const sorted = getSortedNodes ( result , {
397+ importOrder : [ ] ,
398+ importOrderCaseInsensitive : false ,
399+ importOrderSeparation : false ,
400+ importOrderGroupNamespaceSpecifiers : false ,
401+ importOrderSortSpecifiers : false ,
402+ importOrderSideEffects : false ,
403+ importOrderSortByLength : 'desc'
404+ } ) as ImportDeclaration [ ] ;
405+ expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
406+ 't' ,
407+ 'k' ,
408+ 'c' ,
409+ 'a' ,
410+ 'x' ,
411+ 'Ba' ,
412+ 'BY' ,
413+ 'Xa' ,
414+ 'XY' ,
415+ 'g' ,
416+ 'z'
417+ ] ) ;
418+ } ) ;
419+
360420test ( 'it returns all sorted nodes with types' , ( ) => {
361421 const result = getImportNodes ( typeCode , {
362422 plugins : [ 'typescript' ] ,
@@ -368,6 +428,7 @@ test('it returns all sorted nodes with types', () => {
368428 importOrderGroupNamespaceSpecifiers : false ,
369429 importOrderSortSpecifiers : false ,
370430 importOrderSideEffects : true ,
431+ importOrderSortByLength : null ,
371432 } ) as ImportDeclaration [ ] ;
372433
373434 expect ( getSortedNodesNames ( sorted ) ) . toEqual ( [
0 commit comments