diff --git a/core/base-service/base.js b/core/base-service/base.js index 428a87e63bbb596228e6a0578afa96683041988e..72d80ad57c8ffa7ced7a017c1c699977658e1a2f 100644 --- a/core/base-service/base.js +++ b/core/base-service/base.js @@ -222,7 +222,13 @@ class BaseService { let logUrl = url const logOptions = Object.assign({}, options) if ('searchParams' in options) { - const params = new URLSearchParams(options.searchParams) + const params = new URLSearchParams( + Object.fromEntries( + Object.entries(options.searchParams).filter( + ([k, v]) => v !== undefined + ) + ) + ) logUrl = `${url}?${params.toString()}` delete logOptions.searchParams } diff --git a/core/base-service/base.spec.js b/core/base-service/base.spec.js index 8698a15f43b99fce7030163a3cae95c3670be042..0eb3fcd16295350076702ba07c3466ed9f8f52ca 100644 --- a/core/base-service/base.spec.js +++ b/core/base-service/base.spec.js @@ -440,14 +440,21 @@ describe('BaseService', function () { ) const url = 'some-url' - const options = { headers: { Cookie: 'some-cookie' } } + const options = { + headers: { Cookie: 'some-cookie' }, + searchParams: { param1: 'foobar', param2: undefined }, + } await serviceInstance._request({ url, options }) expect(trace.logTrace).to.be.calledWithMatch( 'fetch', sinon.match.string, 'Request', - `${url}\n${JSON.stringify(options, null, 2)}` + `${url}?param1=foobar\n${JSON.stringify( + { headers: options.headers }, + null, + 2 + )}` ) expect(trace.logTrace).to.be.calledWithMatch( 'fetch',