From 47f8c9209feca98e1fac2519380664071fc5d3b1 Mon Sep 17 00:00:00 2001 From: JayMishra-github Date: Mon, 16 Feb 2026 10:44:47 -0800 Subject: [PATCH] test: add tests for extraArgs filtering logic Address review feedback: add tests covering empty strings, non-strings, mixed arrays, and non-array inputs for extraArgs. Co-Authored-By: Claude Opus 4.6 --- src/browser/config.test.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/browser/config.test.ts b/src/browser/config.test.ts index cc3bffeaa14..f19682abf11 100644 --- a/src/browser/config.test.ts +++ b/src/browser/config.test.ts @@ -149,4 +149,37 @@ describe("browser config", () => { expect(resolveProfile(resolved, "chrome")).toBe(null); expect(resolved.defaultProfile).toBe("openclaw"); }); + + it("defaults extraArgs to empty array when not provided", () => { + const resolved = resolveBrowserConfig(undefined); + expect(resolved.extraArgs).toEqual([]); + }); + + it("passes through valid extraArgs strings", () => { + const resolved = resolveBrowserConfig({ + extraArgs: ["--no-sandbox", "--disable-gpu"], + }); + expect(resolved.extraArgs).toEqual(["--no-sandbox", "--disable-gpu"]); + }); + + it("filters out empty strings and whitespace-only entries from extraArgs", () => { + const resolved = resolveBrowserConfig({ + extraArgs: ["--flag", "", " ", "--other"], + }); + expect(resolved.extraArgs).toEqual(["--flag", "--other"]); + }); + + it("filters out non-string entries from extraArgs", () => { + const resolved = resolveBrowserConfig({ + extraArgs: ["--flag", 42, null, undefined, true, "--other"] as unknown as string[], + }); + expect(resolved.extraArgs).toEqual(["--flag", "--other"]); + }); + + it("defaults extraArgs to empty array when set to non-array", () => { + const resolved = resolveBrowserConfig({ + extraArgs: "not-an-array" as unknown as string[], + }); + expect(resolved.extraArgs).toEqual([]); + }); });