@@ -132,15 +132,32 @@ test('stringify()', function (t) {
132132 } ) ;
133133
134134 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' ) ;
135+ st . test ( 'non-array item' , function ( s2t ) {
136+ s2t . equal ( qs . stringify ( { a : 'c' } , { encodeValuesOnly : true , arrayFormat : 'indices' } ) , 'a=c' ) ;
137+ s2t . equal ( qs . stringify ( { a : 'c' } , { encodeValuesOnly : true , arrayFormat : 'brackets' } ) , 'a=c' ) ;
138+ s2t . equal ( qs . stringify ( { a : 'c' } , { encodeValuesOnly : true , arrayFormat : 'comma' } ) , 'a=c' ) ;
139+ s2t . equal ( qs . stringify ( { a : 'c' } , { encodeValuesOnly : true } ) , 'a=c' ) ;
139140
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' ) ;
141+ s2t . end ( ) ;
142+ } ) ;
143+
144+ st . test ( 'array with a single item' , function ( s2t ) {
145+ s2t . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true , arrayFormat : 'indices' } ) , 'a[0]=c' ) ;
146+ s2t . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true , arrayFormat : 'brackets' } ) , 'a[]=c' ) ;
147+ s2t . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true , arrayFormat : 'comma' } ) , 'a[]=c' ) ; // so it parses back as an array
148+ s2t . equal ( qs . stringify ( { a : [ 'c' ] } , { encodeValuesOnly : true } ) , 'a[0]=c' ) ;
149+
150+ s2t . end ( ) ;
151+ } ) ;
152+
153+ st . test ( 'array with multiple items' , function ( s2t ) {
154+ s2t . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true , arrayFormat : 'indices' } ) , 'a[0]=c&a[1]=d' ) ;
155+ s2t . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true , arrayFormat : 'brackets' } ) , 'a[]=c&a[]=d' ) ;
156+ s2t . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true , arrayFormat : 'comma' } ) , 'a=c,d' ) ;
157+ s2t . equal ( qs . stringify ( { a : [ 'c' , 'd' ] } , { encodeValuesOnly : true } ) , 'a[0]=c&a[1]=d' ) ;
158+
159+ s2t . end ( ) ;
160+ } ) ;
144161
145162 st . end ( ) ;
146163 } ) ;
@@ -362,12 +379,12 @@ test('stringify()', function (t) {
362379 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' } ) , 'b[0]=&c=c' ) ;
363380 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' } ) , 'b[]=&c=c' ) ;
364381 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'repeat' } ) , 'b=&c=c' ) ;
365- st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' } ) , 'b=&c=c' ) ;
382+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' } ) , 'b[] =&c=c' ) ;
366383 // with strictNullHandling
367384 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' , strictNullHandling : true } ) , 'b[0]&c=c' ) ;
368385 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' , strictNullHandling : true } ) , 'b[]&c=c' ) ;
369386 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'repeat' , strictNullHandling : true } ) , 'b&c=c' ) ;
370- st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' , strictNullHandling : true } ) , 'b&c=c' ) ;
387+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' , strictNullHandling : true } ) , 'b[] &c=c' ) ;
371388 // with skipNulls
372389 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' , skipNulls : true } ) , 'c=c' ) ;
373390 st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' , skipNulls : true } ) , 'c=c' ) ;
@@ -695,7 +712,7 @@ test('stringify()', function (t) {
695712 arrayFormat : 'comma'
696713 }
697714 ) ,
698- 'a=' + date . getTime ( ) ,
715+ 'a%5B%5D =' + date . getTime ( ) ,
699716 'works with arrayFormat comma'
700717 ) ;
701718
0 commit comments