@@ -24,6 +24,32 @@ test('parse multiple query string', t => {
2424 } ) ;
2525} ) ;
2626
27+ test ( 'parse multiple query string retain order when not sorted' , t => {
28+ const expectedKeys = [ 'b' , 'a' , 'c' ] ;
29+ const parsed = queryString . parse ( 'b=foo&a=bar&c=yay' , { sort : false } ) ;
30+ Object . keys ( parsed ) . forEach ( ( key , index ) => {
31+ t . is ( key , expectedKeys [ index ] ) ;
32+ } ) ;
33+ } ) ;
34+
35+ test ( 'parse multiple query string sorted keys' , t => {
36+ const fixture = [ 'a' , 'b' , 'c' ] ;
37+ const parsed = queryString . parse ( 'a=foo&c=bar&b=yay' ) ;
38+ Object . keys ( parsed ) . forEach ( ( key , index ) => {
39+ t . is ( key , fixture [ index ] ) ;
40+ } ) ;
41+ } ) ;
42+
43+ test ( 'should sort parsed keys in given order' , t => {
44+ const fixture = [ 'c' , 'a' , 'b' ] ;
45+ const sort = ( key1 , key2 ) => fixture . indexOf ( key1 ) - fixture . indexOf ( key2 ) ;
46+
47+ const parsed = queryString . parse ( 'a=foo&b=bar&c=yay' , { sort} ) ;
48+ Object . keys ( parsed ) . forEach ( ( key , index ) => {
49+ t . is ( key , fixture [ index ] ) ;
50+ } ) ;
51+ } ) ;
52+
2753test ( 'parse query string without a value' , t => {
2854 t . deepEqual ( queryString . parse ( 'foo' ) , { foo : null } ) ;
2955 t . deepEqual ( queryString . parse ( 'foo&key' ) , {
0 commit comments