From 00f35c67e87df6071a57c159cae135194ac5e353 Mon Sep 17 00:00:00 2001
From: chris48s <chris48s@users.noreply.github.com>
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 428a87e63b..72d80ad57c 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 8698a15f43..0eb3fcd162 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',
-- 
GitLab