Skip to content

Commit a050341

Browse files
committed
Tests for #123
1 parent 11a5bd7 commit a050341

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

test/parse.js

+55
Original file line numberDiff line numberDiff line change
@@ -555,5 +555,60 @@ test('parse()', function (t) {
555555
st.end();
556556
});
557557

558+
t.test('parses string/object combination', function (st) {
559+
st.deepEqual(
560+
qs.parse('a=val1&a.b=val2', { allowDots: true }),
561+
{ a: { 0: 'val1', b: 'val2' } },
562+
'string + object'
563+
);
564+
st.deepEqual(
565+
qs.parse('a.b=val2&a=val1', { allowDots: true }),
566+
{ a: { 0: 'val1', b: 'val2' } },
567+
'object + string'
568+
);
569+
570+
st.deepEqual(
571+
qs.parse('a.b=val2&a=val1&a.c=val3', { allowDots: true }),
572+
{ a: { 0: 'val1', b: 'val2', c: 'val3' } },
573+
'object + string + object'
574+
);
575+
576+
st.deepEqual(
577+
qs.parse('a.b=val2&a=val1&a=val3', { allowDots: true }),
578+
{ a: { 0: 'val1', 1: 'val3', b: 'val2' } },
579+
'object + string + string'
580+
);
581+
st.deepEqual(
582+
qs.parse('a=val1&a.b=val2&a=val3', { allowDots: true }),
583+
{ a: { 0: 'val1', 1: 'val3', b: 'val2' } },
584+
'string + object + string'
585+
);
586+
587+
st.deepEqual(
588+
qs.parse('a=val1&a=val2&a=val3&a.b=val4', { allowDots: true }),
589+
{ a: { 0: 'val1', 1: 'val2', 2: 'val3', b: 'val4' } },
590+
'string + string + string + object'
591+
);
592+
593+
st.deepEqual(
594+
qs.parse('a=val1&a.b=val2&a.b=val3', { allowDots: true }),
595+
{ a: { 0: 'val1', b: ['val2', 'val3'] } },
596+
'string + object + object'
597+
);
598+
599+
st.deepEqual(
600+
qs.parse('a=val1&a.b=val2&a.b.c=val3', { allowDots: true }),
601+
{ a: { 0: 'val1', b: { 0: 'val2', c: 'val3' } } },
602+
'string + object + nested object'
603+
);
604+
st.deepEqual(
605+
qs.parse('a.b.c=val3&a.b=val2&a=val1', { allowDots: true }),
606+
{ a: { 0: 'val1', b: { 0: 'val2', c: 'val3' } } },
607+
'nested object + object + string'
608+
);
609+
610+
st.end();
611+
});
612+
558613
t.end();
559614
});

0 commit comments

Comments
 (0)