From 00f35c67e87df6071a57c159cae135194ac5e353 Mon Sep 17 00:00:00 2001 From: chris48s Date: Wed, 28 Dec 2022 19:54:11 +0000 Subject: [PATCH] fix debug logging of undefined query params (#8540) --- core/base-service/base.js | 8 +++++++- core/base-service/base.spec.js | 11 +++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) 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',