From a6c0b99fd210d3c542f64b2b42aa2d1c4e319510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0nan=C3=A7=20G=C3=BCm=C3=BC=C5=9F?= Date: Thu, 13 Jun 2024 16:15:39 +0300 Subject: [PATCH] Fix browser empty string flag parsing Currently, passing a flag that doesn't contain a value to K6_BROWSER_ARGS results in an argument with an equal sign suffix: K6_BROWSER_ARGS=disable-site-isolation-trials Results in: disable-site-isolation-trials= Instead of: disable-site-isolation-trials This PR fixes this problem. --- chromium/browser_type.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/chromium/browser_type.go b/chromium/browser_type.go index ed3c2f4b4..9ae5926e0 100644 --- a/chromium/browser_type.go +++ b/chromium/browser_type.go @@ -304,7 +304,15 @@ func parseArgs(flags map[string]any) ([]string, error) { for name, value := range flags { switch value := value.(type) { case string: - args = append(args, fmt.Sprintf("--%s=%s", name, value)) + var arg string + if strings.TrimSpace(value) != "" { + arg = fmt.Sprintf("--%s=%s", name, value) + } else { + // If the value is empty, we don't include it in the args list. + // Otherwise, it will produce "--name=" which is invalid. + arg = fmt.Sprintf("--%s", name) + } + args = append(args, arg) case bool: if value { args = append(args, fmt.Sprintf("--%s", name))