diff --git a/core/base-service/base.js b/core/base-service/base.js index 428a87e63bbb5..72d80ad57c8ff 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 8698a15f43b99..0eb3fcd162953 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',