@@ -213,7 +213,7 @@ test('query strings having ordered index arrays and format option as `index`', t
213213 } ) , { bat : 'buz' , foo : [ 'zero' , 'two' , 'one' , 'three' ] } ) ;
214214} ) ;
215215
216- test ( 'circuit parse -> stringify' , t => {
216+ test ( 'circuit parse → stringify' , t => {
217217 const original = 'foo[3]=foo&foo[2]&foo[1]=one&foo[0]=&bat=buz' ;
218218 const sortedOriginal = 'bat=buz&foo[0]=&foo[1]=one&foo[2]&foo[3]=foo' ;
219219 const expected = { bat : 'buz' , foo : [ '' , 'one' , null , 'foo' ] } ;
@@ -226,7 +226,7 @@ test('circuit parse -> stringify', t => {
226226 t . is ( queryString . stringify ( expected , options ) , sortedOriginal ) ;
227227} ) ;
228228
229- test ( 'circuit original -> parse - > stringify -> sorted original' , t => {
229+ test ( 'circuit original → parse → stringify → sorted original' , t => {
230230 const original = 'foo[21474836471]=foo&foo[21474836470]&foo[1]=one&foo[0]=&bat=buz' ;
231231 const sortedOriginal = 'bat=buz&foo[0]=&foo[1]=one&foo[2]&foo[3]=foo' ;
232232 const options = {
@@ -236,6 +236,33 @@ test('circuit original -> parse - > stringify -> sorted original', t => {
236236 t . deepEqual ( queryString . stringify ( queryString . parse ( original , options ) , options ) , sortedOriginal ) ;
237237} ) ;
238238
239+ test ( 'circuit parse → stringify with array commas' , t => {
240+ const original = 'c=,a,,&b=&a=' ;
241+ const sortedOriginal = 'a=&b=&c=,a,,' ;
242+ const expected = {
243+ c : [ '' , 'a' , '' , '' ] ,
244+ b : '' ,
245+ a : ''
246+ } ;
247+ const options = {
248+ arrayFormat : 'comma'
249+ } ;
250+
251+ t . deepEqual ( queryString . parse ( original , options ) , expected ) ;
252+
253+ t . is ( queryString . stringify ( expected , options ) , sortedOriginal ) ;
254+ } ) ;
255+
256+ test ( 'circuit original → parse → stringify with array commas → sorted original' , t => {
257+ const original = 'c=,a,,&b=&a=' ;
258+ const sortedOriginal = 'a=&b=&c=,a,,' ;
259+ const options = {
260+ arrayFormat : 'comma'
261+ } ;
262+
263+ t . deepEqual ( queryString . stringify ( queryString . parse ( original , options ) , options ) , sortedOriginal ) ;
264+ } ) ;
265+
239266test ( 'decode keys and values' , t => {
240267 t . deepEqual ( queryString . parse ( 'st%C3%A5le=foo' ) , { ståle : 'foo' } ) ;
241268 t . deepEqual ( queryString . parse ( 'foo=%7B%ab%%7C%de%%7D+%%7Bst%C3%A5le%7D%' ) , { foo : '{%ab%|%de%} %{ståle}%' } ) ;
0 commit comments