Skip to content

Commit 146dff0

Browse files
dreyksljharb
authored andcommitted
add failing tests for arrayFormat for parse
1 parent 4751fc0 commit 146dff0

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

test/parse.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,31 @@ test('parse()', function (t) {
3434

3535
t.test('arrayFormat: brackets allows only explicit arrays', function (st) {
3636
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[0]': 'b', 'a[1]': 'c' });
3738
st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'brackets' }), { a: 'b,c' });
39+
st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'brackets' }), { a: 'c' });
3840
st.end();
3941
});
4042

4143
t.test('arrayFormat: indices allows only indexed arrays', function (st) {
44+
st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'indices' }), { 'a[]': 'c' });
4245
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
4346
st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'indices' }), { a: 'b,c' });
47+
st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'indices' }), { a: '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[]': 'c' });
53+
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'comma' }), { 'a[0]': 'b', 'a[1]': '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: 'c' });
4456
st.end();
4557
});
4658

4759
t.test('arrayFormat: repeat allows only repeated values', function (st) {
60+
st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'repeat' }), { 'a[]': 'c' });
61+
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'repeat' }), { 'a[0]': 'b', 'a[1]': 'c' });
4862
st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'repeat' }), { a: 'b,c' });
4963
st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
5064
st.end();

0 commit comments

Comments
 (0)