diff --git a/src/util/query.js b/src/util/query.js index b9abc211f..b2c5286a5 100644 --- a/src/util/query.js +++ b/src/util/query.js @@ -29,7 +29,8 @@ export function resolveQuery ( parsedQuery = {} } for (const key in extraQuery) { - parsedQuery[key] = extraQuery[key] + const value = extraQuery[key] + parsedQuery[key] = Array.isArray(value) ? value.map(v => '' + v) : '' + value } return parsedQuery } diff --git a/test/unit/specs/query.spec.js b/test/unit/specs/query.spec.js index 22c1e6c74..58060ff2c 100644 --- a/test/unit/specs/query.spec.js +++ b/test/unit/specs/query.spec.js @@ -19,6 +19,15 @@ describe('Query utils', () => { arr: ['1', null, '2'] }) }) + + it('should cast query values into string', () => { + const query = resolveQuery('foo=bar&foo=k', { baz: 1 }) + expect(query.baz).toBe('1') + }) + it('should cast query array values into string', () => { + const query = resolveQuery('foo=bar&foo=k', { baz: [1, '2'] }) + expect(query.baz).toEqual(['1', '2']) + }) }) describe('stringifyQuery', () => {