refactor(browser): share chrome resolution helpers

This commit is contained in:
Peter Steinberger
2026-01-08 02:18:43 +00:00
parent 697f78e06b
commit 0d34f330b8
2 changed files with 48 additions and 19 deletions

View File

@@ -10,6 +10,7 @@ import {
findChromeExecutableMac,
findChromeExecutableWindows,
isChromeReachable,
resolveBrowserExecutableForPlatform,
stopClawdChrome,
} from "./chrome.js";
import {
@@ -185,6 +186,29 @@ describe("browser chrome helpers", () => {
exists.mockRestore();
});
it("resolves Windows executables without LOCALAPPDATA", () => {
vi.stubEnv("LOCALAPPDATA", "");
vi.stubEnv("ProgramFiles", "C:\\Program Files");
vi.stubEnv("ProgramFiles(x86)", "C:\\Program Files (x86)");
const marker = path.win32.join(
"Program Files",
"Google",
"Chrome",
"Application",
"chrome.exe",
);
const exists = vi
.spyOn(fs, "existsSync")
.mockImplementation((p) => String(p).includes(marker));
const exe = resolveBrowserExecutableForPlatform(
{} as Parameters<typeof resolveBrowserExecutableForPlatform>[0],
"win32",
);
expect(exe?.kind).toBe("chrome");
expect(exe?.path).toMatch(/chrome\.exe$/);
exists.mockRestore();
});
it("reports reachability based on /json/version", async () => {
vi.stubGlobal(
"fetch",