import { afterEach, describe, expect, it } from "vitest"; import { installElectronWheelZoomGuard } from "../../lib/electron-wheel-zoom"; const win = window as unknown as Record; let cleanup: (() => void) | undefined; afterEach(() => { cleanup?.(); cleanup = undefined; delete win.IS_ELECTRON; delete win.electronAPI; }); function dispatchWheel(init?: WheelEventInit): WheelEvent { const event = new WheelEvent("wheel", { bubbles: true, cancelable: true, ...init, }); window.dispatchEvent(event); return event; } describe("installElectronWheelZoomGuard", () => { it("does not block ordinary browser wheel events", () => { cleanup = installElectronWheelZoomGuard(); expect(dispatchWheel({ ctrlKey: true }).defaultPrevented).toBe(false); }); it("blocks modifier wheel zoom in Electron", () => { win.electronAPI = { isElectron: true }; cleanup = installElectronWheelZoomGuard(); expect(dispatchWheel({ metaKey: true }).defaultPrevented).toBe(true); expect(dispatchWheel({ ctrlKey: true }).defaultPrevented).toBe(true); expect(dispatchWheel().defaultPrevented).toBe(false); }); });