import { describe, expect, it } from 'vitest' import { allowsNativeContextMenu, suppressWebViewContextMenu } from '../../src/utils/nativeContextMenu' describe('native context menu policy', () => { it('suppresses the WebView menu on ordinary application surfaces', () => { const surface = document.createElement('div') document.body.append(surface) const event = new MouseEvent('contextmenu', { bubbles: true, cancelable: true }) surface.addEventListener('contextmenu', suppressWebViewContextMenu) surface.dispatchEvent(event) expect(event.defaultPrevented).toBe(true) }) it('keeps native copy and paste actions for editable fields', () => { const input = document.createElement('input') const editor = document.createElement('div') editor.setAttribute('contenteditable', 'true') expect(allowsNativeContextMenu(input)).toBe(true) expect(allowsNativeContextMenu(editor)).toBe(true) const event = new MouseEvent('contextmenu', { bubbles: true, cancelable: true }) input.addEventListener('contextmenu', suppressWebViewContextMenu) input.dispatchEvent(event) expect(event.defaultPrevented).toBe(false) }) })