import { afterEach, describe, expect, it, vi } from 'vitest' const originalPlatform = process.platform async function importPlatform(platform: NodeJS.Platform) { vi.resetModules() Object.defineProperty(process, 'platform', { value: platform }) return import('../lib/platform.js') } afterEach(() => { Object.defineProperty(process, 'platform', { value: originalPlatform }) vi.resetModules() }) describe('platform action modifier', () => { it('treats kitty Cmd sequences as the macOS action modifier', async () => { const { isActionMod } = await importPlatform('darwin') expect(isActionMod({ ctrl: false, meta: false, super: true })).toBe(true) expect(isActionMod({ ctrl: false, meta: true, super: false })).toBe(true) expect(isActionMod({ ctrl: true, meta: false, super: false })).toBe(false) }) it('still uses Ctrl as the action modifier on non-macOS', async () => { const { isActionMod } = await importPlatform('linux') expect(isActionMod({ ctrl: true, meta: false, super: false })).toBe(true) expect(isActionMod({ ctrl: false, meta: false, super: true })).toBe(false) }) })