Skip to content

Commit 713bd3b

Browse files
committed
Tests for #123
1 parent 988dbe4 commit 713bd3b

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
@@ -457,4 +457,59 @@ test('parse()', function (t) {
457457
}, new TypeError('Decoder has to be a function.'));
458458
st.end();
459459
});
460+
461+
t.test('parses string/object combination', function (st) {
462+
st.deepEqual(
463+
qs.parse('a=val1&a.b=val2', { allowDots: true }),
464+
{ a: { 0: 'val1', b: 'val2' } },
465+
'string + object'
466+
);
467+
st.deepEqual(
468+
qs.parse('a.b=val2&a=val1', { allowDots: true }),
469+
{ a: { 0: 'val1', b: 'val2' } },
470+
'object + string'
471+
);
472+
473+
st.deepEqual(
474+
qs.parse('a.b=val2&a=val1&a.c=val3', { allowDots: true }),
475+
{ a: { 0: 'val1', b: 'val2', c: 'val3' } },
476+
'object + string + object'
477+
);
478+
479+
st.deepEqual(
480+
qs.parse('a.b=val2&a=val1&a=val3', { allowDots: true }),
481+
{ a: { 0: 'val1', 1: 'val3', b: 'val2' } },
482+
'object + string + string'
483+
);
484+
st.deepEqual(
485+
qs.parse('a=val1&a.b=val2&a=val3', { allowDots: true }),
486+
{ a: { 0: 'val1', 1: 'val3', b: 'val2' } },
487+
'string + object + string'
488+
);
489+
490+
st.deepEqual(
491+
qs.parse('a=val1&a=val2&a=val3&a.b=val4', { allowDots: true }),
492+
{ a: { 0: 'val1', 1: 'val2', 2: 'val3', b: 'val4' } },
493+
'string + string + string + object'
494+
);
495+
496+
st.deepEqual(
497+
qs.parse('a=val1&a.b=val2&a.b=val3', { allowDots: true }),
498+
{ a: { 0: 'val1', b: ['val2', 'val3'] } },
499+
'string + object + object'
500+
);
501+
502+
st.deepEqual(
503+
qs.parse('a=val1&a.b=val2&a.b.c=val3', { allowDots: true }),
504+
{ a: { 0: 'val1', b: { 0: 'val2', c: 'val3' } } },
505+
'string + object + nested object'
506+
);
507+
st.deepEqual(
508+
qs.parse('a.b.c=val3&a.b=val2&a=val1', { allowDots: true }),
509+
{ a: { 0: 'val1', b: { 0: 'val2', c: 'val3' } } },
510+
'nested object + object + string'
511+
);
512+
513+
st.end();
514+
});
460515
});

0 commit comments

Comments
 (0)