@@ -32,6 +32,38 @@ test('parse()', function (t) {
32
32
st . end ( ) ;
33
33
} ) ;
34
34
35
+ t . test ( 'arrayFormat: brackets allows only explicit arrays' , function ( st ) {
36
+ st . deepEqual ( qs . parse ( 'a[]=b&a[]=c' , { arrayFormat : 'brackets' } ) , { a : [ 'b' , 'c' ] } ) ;
37
+ st . deepEqual ( qs . parse ( 'a[0]=b&a[1]=c' , { arrayFormat : 'brackets' } ) , { a : [ 'b' , 'c' ] } ) ;
38
+ st . deepEqual ( qs . parse ( 'a=b,c' , { arrayFormat : 'brackets' } ) , { a : 'b,c' } ) ;
39
+ st . deepEqual ( qs . parse ( 'a=b&a=c' , { arrayFormat : 'brackets' } ) , { a : [ 'b' , 'c' ] } ) ;
40
+ st . end ( ) ;
41
+ } ) ;
42
+
43
+ t . test ( 'arrayFormat: indices allows only indexed arrays' , function ( st ) {
44
+ st . deepEqual ( qs . parse ( 'a[]=b&a[]=c' , { arrayFormat : 'indices' } ) , { a : [ 'b' , 'c' ] } ) ;
45
+ st . deepEqual ( qs . parse ( 'a[0]=b&a[1]=c' , { arrayFormat : 'indices' } ) , { a : [ 'b' , 'c' ] } ) ;
46
+ st . deepEqual ( qs . parse ( 'a=b,c' , { arrayFormat : 'indices' } ) , { a : 'b,c' } ) ;
47
+ st . deepEqual ( qs . parse ( 'a=b&a=c' , { arrayFormat : 'indices' } ) , { a : [ 'b' , 'c' ] } ) ;
48
+ st . end ( ) ;
49
+ } ) ;
50
+
51
+ t . test ( 'arrayFormat: comma allows only comma-separated arrays' , function ( st ) {
52
+ st . deepEqual ( qs . parse ( 'a[]=b&a[]=c' , { arrayFormat : 'comma' } ) , { a : [ 'b' , 'c' ] } ) ;
53
+ st . deepEqual ( qs . parse ( 'a[0]=b&a[1]=c' , { arrayFormat : 'comma' } ) , { a : [ 'b' , 'c' ] } ) ;
54
+ st . deepEqual ( qs . parse ( 'a=b,c' , { arrayFormat : 'comma' } ) , { a : 'b,c' } ) ;
55
+ st . deepEqual ( qs . parse ( 'a=b&a=c' , { arrayFormat : 'comma' } ) , { a : [ 'b' , 'c' ] } ) ;
56
+ st . end ( ) ;
57
+ } ) ;
58
+
59
+ t . test ( 'arrayFormat: repeat allows only repeated values' , function ( st ) {
60
+ st . deepEqual ( qs . parse ( 'a[]=b&a[]=c' , { arrayFormat : 'repeat' } ) , { a : [ 'b' , 'c' ] } ) ;
61
+ st . deepEqual ( qs . parse ( 'a[0]=b&a[1]=c' , { arrayFormat : 'repeat' } ) , { a : [ 'b' , 'c' ] } ) ;
62
+ st . deepEqual ( qs . parse ( 'a=b,c' , { arrayFormat : 'repeat' } ) , { a : 'b,c' } ) ;
63
+ st . deepEqual ( qs . parse ( 'a=b&a=c' , { arrayFormat : 'repeat' } ) , { a : [ 'b' , 'c' ] } ) ;
64
+ st . end ( ) ;
65
+ } ) ;
66
+
35
67
t . test ( 'allows enabling dot notation' , function ( st ) {
36
68
st . deepEqual ( qs . parse ( 'a.b=c' ) , { 'a.b' : 'c' } ) ;
37
69
st . deepEqual ( qs . parse ( 'a.b=c' , { allowDots : true } ) , { a : { b : 'c' } } ) ;
0 commit comments