// tests/setup.ts // vitest 글로벌 셋업: electron 모듈 모킹 import { vi } from 'vitest' // electron 모듈 모킹 — 테스트에서 electron import 시 에러 방지 vi.mock('electron', () => ({ app: { getPath: vi.fn(() => ':memory:'), getVersion: vi.fn(() => '1.0.0'), quit: vi.fn(), on: vi.fn(), whenReady: vi.fn(() => Promise.resolve()) }, ipcMain: { handle: vi.fn(), on: vi.fn(), removeHandler: vi.fn() }, BrowserWindow: vi.fn(), Tray: vi.fn(), Menu: vi.fn(), nativeImage: { createFromPath: vi.fn() }, dialog: { showErrorBox: vi.fn() }, screen: { getPrimaryDisplay: vi.fn(() => ({ workArea: { x: 0, y: 0, width: 1920, height: 1080 } })) }, clipboard: { readText: vi.fn(() => ''), writeText: vi.fn(), readHTML: vi.fn(() => ''), readRTF: vi.fn(() => ''), readImage: vi.fn(() => ({ isEmpty: () => true, toPNG: () => Buffer.alloc(0) })), write: vi.fn() } })) // WindowManager 모킹 — VoiceModeService가 import하므로 필요 vi.mock('../src/main/windows/WindowManager', () => ({ showRecordingTip: vi.fn(), hideRecordingTip: vi.fn(), updateRecordingTipState: vi.fn(), sendAudioLevelToTip: vi.fn(), showResultPopup: vi.fn(), hideResultPopup: vi.fn(), getMainWindow: vi.fn(), createMainWindow: vi.fn(), })) // electron-log 모킹 vi.mock('electron-log', () => { const noop = vi.fn() return { default: { info: noop, warn: noop, error: noop, debug: noop, create: () => ({ info: noop, warn: noop, error: noop, debug: noop }) } } })