/ node_modules / qs / test / empty-keys-cases.js
empty-keys-cases.js
  1  'use strict';
  2  
  3  module.exports = {
  4      emptyTestCases: [
  5          {
  6              input: '&',
  7              withEmptyKeys: {},
  8              stringifyOutput: {
  9                  brackets: '',
 10                  indices: '',
 11                  repeat: ''
 12              },
 13              noEmptyKeys: {}
 14          },
 15          {
 16              input: '&&',
 17              withEmptyKeys: {},
 18              stringifyOutput: {
 19                  brackets: '',
 20                  indices: '',
 21                  repeat: ''
 22              },
 23              noEmptyKeys: {}
 24          },
 25          {
 26              input: '&=',
 27              withEmptyKeys: { '': '' },
 28              stringifyOutput: {
 29                  brackets: '=',
 30                  indices: '=',
 31                  repeat: '='
 32              },
 33              noEmptyKeys: {}
 34          },
 35          {
 36              input: '&=&',
 37              withEmptyKeys: { '': '' },
 38              stringifyOutput: {
 39                  brackets: '=',
 40                  indices: '=',
 41                  repeat: '='
 42              },
 43              noEmptyKeys: {}
 44          },
 45          {
 46              input: '&=&=',
 47              withEmptyKeys: { '': ['', ''] },
 48              stringifyOutput: {
 49                  brackets: '[]=&[]=',
 50                  indices: '[0]=&[1]=',
 51                  repeat: '=&='
 52              },
 53              noEmptyKeys: {}
 54          },
 55          {
 56              input: '&=&=&',
 57              withEmptyKeys: { '': ['', ''] },
 58              stringifyOutput: {
 59                  brackets: '[]=&[]=',
 60                  indices: '[0]=&[1]=',
 61                  repeat: '=&='
 62              },
 63              noEmptyKeys: {}
 64          },
 65          {
 66              input: '=',
 67              withEmptyKeys: { '': '' },
 68              noEmptyKeys: {},
 69              stringifyOutput: {
 70                  brackets: '=',
 71                  indices: '=',
 72                  repeat: '='
 73              }
 74          },
 75          {
 76              input: '=&',
 77              withEmptyKeys: { '': '' },
 78              stringifyOutput: {
 79                  brackets: '=',
 80                  indices: '=',
 81                  repeat: '='
 82              },
 83              noEmptyKeys: {}
 84          },
 85          {
 86              input: '=&&&',
 87              withEmptyKeys: { '': '' },
 88              stringifyOutput: {
 89                  brackets: '=',
 90                  indices: '=',
 91                  repeat: '='
 92              },
 93              noEmptyKeys: {}
 94          },
 95          {
 96              input: '=&=&=&',
 97              withEmptyKeys: { '': ['', '', ''] },
 98              stringifyOutput: {
 99                  brackets: '[]=&[]=&[]=',
100                  indices: '[0]=&[1]=&[2]=',
101                  repeat: '=&=&='
102              },
103              noEmptyKeys: {}
104          },
105          {
106              input: '=&a[]=b&a[1]=c',
107              withEmptyKeys: { '': '', a: ['b', 'c'] },
108              stringifyOutput: {
109                  brackets: '=&a[]=b&a[]=c',
110                  indices: '=&a[0]=b&a[1]=c',
111                  repeat: '=&a=b&a=c'
112              },
113              noEmptyKeys: { a: ['b', 'c'] }
114          },
115          {
116              input: '=a',
117              withEmptyKeys: { '': 'a' },
118              noEmptyKeys: {},
119              stringifyOutput: {
120                  brackets: '=a',
121                  indices: '=a',
122                  repeat: '=a'
123              }
124          },
125          {
126              input: 'a==a',
127              withEmptyKeys: { a: '=a' },
128              noEmptyKeys: { a: '=a' },
129              stringifyOutput: {
130                  brackets: 'a==a',
131                  indices: 'a==a',
132                  repeat: 'a==a'
133              }
134          },
135          {
136              input: '=&a[]=b',
137              withEmptyKeys: { '': '', a: ['b'] },
138              stringifyOutput: {
139                  brackets: '=&a[]=b',
140                  indices: '=&a[0]=b',
141                  repeat: '=&a=b'
142              },
143              noEmptyKeys: { a: ['b'] }
144          },
145          {
146              input: '=&a[]=b&a[]=c&a[2]=d',
147              withEmptyKeys: { '': '', a: ['b', 'c', 'd'] },
148              stringifyOutput: {
149                  brackets: '=&a[]=b&a[]=c&a[]=d',
150                  indices: '=&a[0]=b&a[1]=c&a[2]=d',
151                  repeat: '=&a=b&a=c&a=d'
152              },
153              noEmptyKeys: { a: ['b', 'c', 'd'] }
154          },
155          {
156              input: '=a&=b',
157              withEmptyKeys: { '': ['a', 'b'] },
158              stringifyOutput: {
159                  brackets: '[]=a&[]=b',
160                  indices: '[0]=a&[1]=b',
161                  repeat: '=a&=b'
162              },
163              noEmptyKeys: {}
164          },
165          {
166              input: '=a&foo=b',
167              withEmptyKeys: { '': 'a', foo: 'b' },
168              noEmptyKeys: { foo: 'b' },
169              stringifyOutput: {
170                  brackets: '=a&foo=b',
171                  indices: '=a&foo=b',
172                  repeat: '=a&foo=b'
173              }
174          },
175          {
176              input: 'a[]=b&a=c&=',
177              withEmptyKeys: { '': '', a: ['b', 'c'] },
178              stringifyOutput: {
179                  brackets: '=&a[]=b&a[]=c',
180                  indices: '=&a[0]=b&a[1]=c',
181                  repeat: '=&a=b&a=c'
182              },
183              noEmptyKeys: { a: ['b', 'c'] }
184          },
185          {
186              input: 'a[]=b&a=c&=',
187              withEmptyKeys: { '': '', a: ['b', 'c'] },
188              stringifyOutput: {
189                  brackets: '=&a[]=b&a[]=c',
190                  indices: '=&a[0]=b&a[1]=c',
191                  repeat: '=&a=b&a=c'
192              },
193              noEmptyKeys: { a: ['b', 'c'] }
194          },
195          {
196              input: 'a[0]=b&a=c&=',
197              withEmptyKeys: { '': '', a: ['b', 'c'] },
198              stringifyOutput: {
199                  brackets: '=&a[]=b&a[]=c',
200                  indices: '=&a[0]=b&a[1]=c',
201                  repeat: '=&a=b&a=c'
202              },
203              noEmptyKeys: { a: ['b', 'c'] }
204          },
205          {
206              input: 'a=b&a[]=c&=',
207              withEmptyKeys: { '': '', a: ['b', 'c'] },
208              stringifyOutput: {
209                  brackets: '=&a[]=b&a[]=c',
210                  indices: '=&a[0]=b&a[1]=c',
211                  repeat: '=&a=b&a=c'
212              },
213              noEmptyKeys: { a: ['b', 'c'] }
214          },
215          {
216              input: 'a=b&a[0]=c&=',
217              withEmptyKeys: { '': '', a: ['b', 'c'] },
218              stringifyOutput: {
219                  brackets: '=&a[]=b&a[]=c',
220                  indices: '=&a[0]=b&a[1]=c',
221                  repeat: '=&a=b&a=c'
222              },
223              noEmptyKeys: { a: ['b', 'c'] }
224          },
225          {
226              input: '[]=a&[]=b& []=1',
227              withEmptyKeys: { '': ['a', 'b'], ' ': ['1'] },
228              stringifyOutput: {
229                  brackets: '[]=a&[]=b& []=1',
230                  indices: '[0]=a&[1]=b& [0]=1',
231                  repeat: '=a&=b& =1'
232              },
233              noEmptyKeys: { 0: 'a', 1: 'b', ' ': ['1'] }
234          },
235          {
236              input: '[0]=a&[1]=b&a[0]=1&a[1]=2',
237              withEmptyKeys: { '': ['a', 'b'], a: ['1', '2'] },
238              noEmptyKeys: { 0: 'a', 1: 'b', a: ['1', '2'] },
239              stringifyOutput: {
240                  brackets: '[]=a&[]=b&a[]=1&a[]=2',
241                  indices: '[0]=a&[1]=b&a[0]=1&a[1]=2',
242                  repeat: '=a&=b&a=1&a=2'
243              }
244          },
245          {
246              input: '[deep]=a&[deep]=2',
247              withEmptyKeys: { '': { deep: ['a', '2'] }
248              },
249              stringifyOutput: {
250                  brackets: '[deep][]=a&[deep][]=2',
251                  indices: '[deep][0]=a&[deep][1]=2',
252                  repeat: '[deep]=a&[deep]=2'
253              },
254              noEmptyKeys: { deep: ['a', '2'] }
255          },
256          {
257              input: '%5B0%5D=a&%5B1%5D=b',
258              withEmptyKeys: { '': ['a', 'b'] },
259              stringifyOutput: {
260                  brackets: '[]=a&[]=b',
261                  indices: '[0]=a&[1]=b',
262                  repeat: '=a&=b'
263              },
264              noEmptyKeys: { 0: 'a', 1: 'b' }
265          }
266      ]
267  };