fix: cover the gnome close path in the desktop quit test (#1332)

This commit is contained in:
LukeGus committed 2026-09-30 12:16:00 -05:00
1 parent 71bbec7084
commit 09259de01c
1 file changed
+21 -1
+21 -1
View File
@@ -12,17 +12,26 @@ const shell = fs.readFileSync(
"utf8", "utf8",
); );
function harness(active = true, hasTray = true) { function harness(
active = true,
hasTray = true,
platform: { platform: string; env: Record<string, string> } = {
platform: "win32",
env: {},
},
) {
const app = new EventEmitter(); const app = new EventEmitter();
const window = Object.assign(new EventEmitter(), { const window = Object.assign(new EventEmitter(), {
webContents: new EventEmitter(), webContents: new EventEmitter(),
hide: vi.fn(), hide: vi.fn(),
minimize: vi.fn(),
}); });
const context = vm.createContext({ const context = vm.createContext({
isQuitting: false, isQuitting: false,
app, app,
mainWindow: window, mainWindow: window,
console, console,
process: platform,
tray: hasTray ? { isDestroyed: () => false } : null, tray: hasTray ? { isDestroyed: () => false } : null,
hasActiveConnection: () => active, hasActiveConnection: () => active,
}); });
@@ -91,6 +100,17 @@ describe("desktop quit with active connections", () => {
expect(event.preventDefault).toHaveBeenCalledOnce(); expect(event.preventDefault).toHaveBeenCalledOnce();
expect(app.window.hide).toHaveBeenCalledOnce(); expect(app.window.hide).toHaveBeenCalledOnce();
}); });
it("minimizes instead of hiding on GNOME, which has no tray by default", () => {
const app = harness(true, true, {
platform: "linux",
env: { XDG_CURRENT_DESKTOP: "ubuntu:GNOME" },
});
const event = { preventDefault: vi.fn() };
app.window.emit("close", event);
expect(event.preventDefault).toHaveBeenCalledOnce();
expect(app.window.minimize).toHaveBeenCalledOnce();
expect(app.window.hide).not.toHaveBeenCalled();
});
it("quits normally when no connection blocks unloading", () => { it("quits normally when no connection blocks unloading", () => {
expect(harness(false).attemptQuit()).toBe(true); expect(harness(false).attemptQuit()).toBe(true);
}); });