@@ -131,6 +131,20 @@ test('stringify()', function (t) {
131131 st . end ( ) ;
132132 } ) ;
133133
134+ t . test ( 'stringifies an array value with one item vs multiple items' , function ( st ) {
135+ st . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true , arrayFormat : 'indices' } ) , 'a[0]=c' ) ;
136+ st . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true , arrayFormat : 'brackets' } ) , 'a[]=c' ) ;
137+ st . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true , arrayFormat : 'comma' } ) , 'a[]=c' ) ; // so it parses back as an array
138+ st . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true } ) , 'a[0]=c' ) ;
139+
140+ st . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true , arrayFormat : 'indices' } ) , 'a[0]=c&a[1]=d' ) ;
141+ st . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true , arrayFormat : 'brackets' } ) , 'a[]=c&a[]=d' ) ;
142+ st . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true , arrayFormat : 'comma' } ) , 'a=c,d' ) ;
143+ st . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true } ) , 'a[0]=c&a[1]=d' ) ;
144+
145+ st . end ( ) ;
146+ } ) ;
147+
134148 t . test ( 'stringifies a nested array value' , function ( st ) {
135149 st . equal ( qs . stringify ( { a : { b : [ 'c' , 'd' ] } } , { encodeValuesOnly : true , arrayFormat : 'indices' } ) , 'a[b][0]=c&a[b][1]=d' ) ;
136150 st . equal ( qs . stringify ( { a : { b : [ 'c' , 'd' ] } } , { encodeValuesOnly : true , arrayFormat : 'brackets' } ) , 'a[b][]=c&a[b][]=d' ) ;
0 commit comments