@@ -482,6 +482,48 @@ ruleTester.run('sort-keys-shorthand', rule, {
482482 ]
483483 } ,
484484
485+ // suggestion sorts the full region in one pass (not just an adjacent swap)
486+ {
487+ code : 'var obj = {a:1, d:2, c:3, b:4, e:5}' ,
488+ options : [ ] ,
489+ errors : [
490+ {
491+ message : "Expected object keys to be in ascending order. 'c' should be before 'd'." ,
492+ suggestions : [ {
493+ desc : 'Fix order' ,
494+ output : 'var obj = {a:1, b:4, c:3, d:2, e:5}'
495+ } ]
496+ } ,
497+ {
498+ message : "Expected object keys to be in ascending order. 'b' should be before 'c'." ,
499+ suggestions : [ {
500+ desc : 'Fix order' ,
501+ output : 'var obj = {a:1, b:4, c:3, d:2, e:5}'
502+ } ]
503+ }
504+ ]
505+ } ,
506+ // region sort stays within spread-bounded groups
507+ {
508+ code : 'var obj = {d:1, a:2, ...x, f:3, e:4}' ,
509+ options : [ ] ,
510+ errors : [
511+ {
512+ message : "Expected object keys to be in ascending order. 'a' should be before 'd'." ,
513+ suggestions : [ {
514+ desc : 'Fix order' ,
515+ output : 'var obj = {a:2, d:1, ...x, f:3, e:4}'
516+ } ]
517+ } ,
518+ {
519+ message : "Expected object keys to be in ascending order. 'e' should be before 'f'." ,
520+ suggestions : [ {
521+ desc : 'Fix order' ,
522+ output : 'var obj = {d:1, a:2, ...x, e:4, f:3}'
523+ } ]
524+ }
525+ ]
526+ } ,
485527 // not ignore properties not separated by spread properties
486528 {
487529 code : 'var obj = {...z, c:1, b:1}' ,
@@ -950,7 +992,7 @@ ruleTester.run('sort-keys-shorthand', rule, {
950992 message : "Expected object keys to be in descending order. 'a' should be before ''." ,
951993 suggestions : [ {
952994 desc : "Fix order" ,
953- output : "var obj = {a:'2','':1} // desc"
995+ output : "var obj = {a:'2', '':1} // desc"
954996 } ] ,
955997 }
956998 ]
@@ -963,7 +1005,7 @@ ruleTester.run('sort-keys-shorthand', rule, {
9631005 message : "Expected object keys to be in descending order. 'a' should be before ''." ,
9641006 suggestions : [ {
9651007 desc : "Fix order" ,
966- output : "var obj = {a:'2',[``]:1} // desc"
1008+ output : "var obj = {a:'2', [``]:1} // desc"
9671009 } ] ,
9681010 }
9691011 ]
@@ -1030,14 +1072,14 @@ ruleTester.run('sort-keys-shorthand', rule, {
10301072 message : "Expected object keys to be in descending order. '2' should be before '1'." ,
10311073 suggestions : [ {
10321074 desc : "Fix order" ,
1033- output : "var obj = {2:4,1:1, A:3 , '11':2}"
1075+ output : "var obj = {A:3, 2:4 , '11':2, 1:1 }"
10341076 } ] ,
10351077 } ,
10361078 {
10371079 message : "Expected object keys to be in descending order. 'A' should be before '2'." ,
10381080 suggestions : [ {
10391081 desc : "Fix order" ,
1040- output : "var obj = {1:1, A:3,2:4, '11':2}"
1082+ output : "var obj = {A:3, 2:4, '11':2, 1:1 }"
10411083 } ] ,
10421084 }
10431085 ]
@@ -1132,14 +1174,14 @@ ruleTester.run('sort-keys-shorthand', rule, {
11321174 message : "Expected object keys to be in insensitive descending order. '2' should be before '1'." ,
11331175 suggestions : [ {
11341176 desc : "Fix order" ,
1135- output : "var obj = {2:4,1:1, A:3 , '11':2}"
1177+ output : "var obj = {A:3, 2:4 , '11':2, 1:1 }"
11361178 } ] ,
11371179 } ,
11381180 {
11391181 message : "Expected object keys to be in insensitive descending order. 'A' should be before '2'." ,
11401182 suggestions : [ {
11411183 desc : "Fix order" ,
1142- output : "var obj = {1:1, A:3,2:4, '11':2}"
1184+ output : "var obj = {A:3, 2:4, '11':2, 1:1 }"
11431185 } ] ,
11441186 }
11451187 ]
@@ -1238,14 +1280,14 @@ ruleTester.run('sort-keys-shorthand', rule, {
12381280 message : "Expected object keys to be in natural descending order. '2' should be before '1'." ,
12391281 suggestions : [ {
12401282 desc : "Fix order" ,
1241- output : "var obj = {2:4,1:1, A:3, '11':2}"
1283+ output : "var obj = {A:3, '11':2, 2:4, 1:1 }"
12421284 } ] ,
12431285 } ,
12441286 {
12451287 message : "Expected object keys to be in natural descending order. 'A' should be before '2'." ,
12461288 suggestions : [ {
12471289 desc : "Fix order" ,
1248- output : "var obj = {1:1, A:3, 2:4, '11':2 }"
1290+ output : "var obj = {A:3, '11':2, 2:4, 1:1 }"
12491291 } ] ,
12501292 }
12511293 ]
0 commit comments