import { afterEach, describe, expect, it, vi } from 'vitest'; import { getSearchShortcutLabel } from '@/layout/TopBar/constants'; describe('getSearchShortcutLabel', () => { const originalUserAgent = navigator.userAgent; afterEach(() => { vi.stubGlobal('navigator', { ...navigator, userAgent: originalUserAgent }); }); it('macOS 应显示 ⌘K', () => { vi.stubGlobal('navigator', { ...navigator, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', }); expect(getSearchShortcutLabel()).toBe('⌘K'); }); it('Windows 应显示 Ctrl+K', () => { vi.stubGlobal('navigator', { ...navigator, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', }); expect(getSearchShortcutLabel()).toBe('Ctrl+K'); }); it('Linux 应显示 Ctrl+K', () => { vi.stubGlobal('navigator', { ...navigator, userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', }); expect(getSearchShortcutLabel()).toBe('Ctrl+K'); }); });