@@ -132,15 +132,32 @@ test('stringify()', function (t) {
132
132
} ) ;
133
133
134
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' ) ;
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' ) ;
139
140
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
+ } ) ;
144
161
145
162
st . end ( ) ;
146
163
} ) ;
@@ -362,12 +379,12 @@ test('stringify()', function (t) {
362
379
st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' } ) , 'b[0]=&c=c' ) ;
363
380
st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' } ) , 'b[]=&c=c' ) ;
364
381
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' ) ;
366
383
// with strictNullHandling
367
384
st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' , strictNullHandling : true } ) , 'b[0]&c=c' ) ;
368
385
st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' , strictNullHandling : true } ) , 'b[]&c=c' ) ;
369
386
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' ) ;
371
388
// with skipNulls
372
389
st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' , skipNulls : true } ) , 'c=c' ) ;
373
390
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) {
695
712
arrayFormat : 'comma'
696
713
}
697
714
) ,
698
- 'a=' + date . getTime ( ) ,
715
+ 'a%5B%5D =' + date . getTime ( ) ,
699
716
'works with arrayFormat comma'
700
717
) ;
701
718
0 commit comments