From 717ff0d667776e674a1e295ed4072a72e928bd77 Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Wed, 25 Mar 2026 15:44:50 +0530 Subject: [PATCH] fix: cover macOS Edge osascript fallback path (#48561) (thanks @zoherghadyali) --- src/browser/chrome.default-browser.test.ts | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/browser/chrome.default-browser.test.ts b/src/browser/chrome.default-browser.test.ts index 4c29939e820..324bbb62731 100644 --- a/src/browser/chrome.default-browser.test.ts +++ b/src/browser/chrome.default-browser.test.ts @@ -130,6 +130,31 @@ describe("browser default executable detection", () => { expect(exe?.kind).toBe("edge"); }); + it("falls back to Chrome when Edge LaunchServices lookup has no app path", async () => { + vi.mocked(execFileSync).mockImplementation((cmd, args) => { + const argsStr = Array.isArray(args) ? args.join(" ") : ""; + if (cmd === "/usr/bin/plutil" && argsStr.includes("LSHandlers")) { + return JSON.stringify([ + { LSHandlerURLScheme: "http", LSHandlerRoleAll: "com.microsoft.edgemac" }, + ]); + } + if (cmd === "/usr/bin/osascript" && argsStr.includes("path to application id")) { + return ""; + } + return ""; + }); + mockChromeExecutableExists(); + const resolveBrowserExecutableForPlatform = await loadResolveBrowserExecutableForPlatform(); + + const exe = resolveBrowserExecutableForPlatform( + {} as Parameters[0], + "darwin", + ); + + expect(exe?.path).toContain("Google Chrome.app/Contents/MacOS/Google Chrome"); + expect(exe?.kind).toBe("chrome"); + }); + it("falls back when default browser is non-Chromium on macOS", async () => { mockMacDefaultBrowser("com.apple.Safari"); mockChromeExecutableExists();