Skip to content

Commit 11b90f7

Browse files
authored
Merge pull request #1105 from shockey/bug/1103-integer-zero-query-builder
Include `0` values in query strings
2 parents 3a993d8 + 1a9ca25 commit 11b90f7

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

src/execute.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ export function queryBuilder({req, value, parameter}) {
202202
value = 'false'
203203
}
204204

205+
if (value === 0 && ['number', 'integer'].indexOf(parameter.type) > -1) {
206+
value = '0'
207+
}
208+
205209
if (value) {
206210
req.query[parameter.name] = {
207211
collectionFormat: parameter.collectionFormat,

test/execute.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,63 @@ describe('execute', () => {
188188
})
189189
})
190190

191+
it('should include values and defaults that are falsy', function () {
192+
// Given
193+
const spec = {
194+
host: 'swagger.io',
195+
basePath: '/v1',
196+
paths: {
197+
'/one': {
198+
get: {
199+
operationId: 'getMe',
200+
parameters: [
201+
{
202+
name: 'zero',
203+
in: 'query',
204+
type: 'integer'
205+
},
206+
{
207+
name: 'false',
208+
in: 'query',
209+
type: 'boolean'
210+
},
211+
{
212+
name: 'zeroDefault',
213+
in: 'query',
214+
type: 'integer',
215+
default: 0
216+
},
217+
{
218+
name: 'falseDefault',
219+
in: 'query',
220+
type: 'boolean',
221+
default: false
222+
},
223+
]
224+
}
225+
}
226+
}
227+
}
228+
229+
// When
230+
const req = buildRequest({
231+
spec,
232+
operationId: 'getMe',
233+
parameters: {
234+
false: false,
235+
zero: 0
236+
}
237+
})
238+
239+
// Then
240+
expect(req).toEqual({
241+
url: 'http://swagger.io/v1/one?zero=0&false=false&zeroDefault=0&falseDefault=false',
242+
method: 'GET',
243+
credentials: 'same-origin',
244+
headers: { }
245+
})
246+
})
247+
191248
it('should include values for boolean query parameters', function () {
192249
// Given
193250
const spec = {

0 commit comments

Comments
 (0)