@@ -218,7 +218,7 @@ test('query strings having ordered index arrays and format option as `index`', t
218218 } ) , { bat : 'buz' , foo : [ 'zero' , 'two' , 'one' , 'three' ] } ) ;
219219} ) ;
220220
221- test ( 'circuit parse -> stringify' , t => {
221+ test ( 'circuit parse → stringify' , t => {
222222 const original = 'foo[3]=foo&foo[2]&foo[1]=one&foo[0]=&bat=buz' ;
223223 const sortedOriginal = 'bat=buz&foo[0]=&foo[1]=one&foo[2]&foo[3]=foo' ;
224224 const expected = { bat : 'buz' , foo : [ '' , 'one' , null , 'foo' ] } ;
@@ -231,7 +231,7 @@ test('circuit parse -> stringify', t => {
231231 t . is ( queryString . stringify ( expected , options ) , sortedOriginal ) ;
232232} ) ;
233233
234- test ( 'circuit original -> parse - > stringify -> sorted original' , t => {
234+ test ( 'circuit original → parse → stringify → sorted original' , t => {
235235 const original = 'foo[21474836471]=foo&foo[21474836470]&foo[1]=one&foo[0]=&bat=buz' ;
236236 const sortedOriginal = 'bat=buz&foo[0]=&foo[1]=one&foo[2]&foo[3]=foo' ;
237237 const options = {
@@ -241,6 +241,33 @@ test('circuit original -> parse - > stringify -> sorted original', t => {
241241 t . deepEqual ( queryString . stringify ( queryString . parse ( original , options ) , options ) , sortedOriginal ) ;
242242} ) ;
243243
244+ test ( 'circuit parse → stringify with array commas' , t => {
245+ const original = 'c=,a,,&b=&a=' ;
246+ const sortedOriginal = 'a=&b=&c=,a,,' ;
247+ const expected = {
248+ c : [ '' , 'a' , '' , '' ] ,
249+ b : '' ,
250+ a : ''
251+ } ;
252+ const options = {
253+ arrayFormat : 'comma'
254+ } ;
255+
256+ t . deepEqual ( queryString . parse ( original , options ) , expected ) ;
257+
258+ t . is ( queryString . stringify ( expected , options ) , sortedOriginal ) ;
259+ } ) ;
260+
261+ test ( 'circuit original → parse → stringify with array commas → sorted original' , t => {
262+ const original = 'c=,a,,&b=&a=' ;
263+ const sortedOriginal = 'a=&b=&c=,a,,' ;
264+ const options = {
265+ arrayFormat : 'comma'
266+ } ;
267+
268+ t . deepEqual ( queryString . stringify ( queryString . parse ( original , options ) , options ) , sortedOriginal ) ;
269+ } ) ;
270+
244271test ( 'decode keys and values' , t => {
245272 t . deepEqual ( queryString . parse ( 'st%C3%A5le=foo' ) , { ståle : 'foo' } ) ;
246273 t . deepEqual ( queryString . parse ( 'foo=%7B%ab%%7C%de%%7D+%%7Bst%C3%A5le%7D%' ) , { foo : '{%ab%|%de%} %{ståle}%' } ) ;
0 commit comments