veza/apps/web/src/hooks/useGlobalKeyboardShortcuts.test.ts

58 lines
1.4 KiB
TypeScript
Raw Normal View History

import { renderHook } from '@testing-library/react';
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { useGlobalKeyboardShortcuts } from './useGlobalKeyboardShortcuts';
describe('useGlobalKeyboardShortcuts', () => {
const mockOnHelpOpen = vi.fn();
beforeEach(() => {
vi.clearAllMocks();
});
afterEach(() => {
// Cleanup event listeners
document.removeEventListener('keydown', vi.fn());
});
it('should setup global keyboard shortcuts', () => {
renderHook(() =>
useGlobalKeyboardShortcuts({
onHelpOpen: mockOnHelpOpen,
})
);
// Le hook devrait être défini et fonctionnel
expect(mockOnHelpOpen).toBeDefined();
});
it('should handle keyboard events', () => {
renderHook(() =>
useGlobalKeyboardShortcuts({
onHelpOpen: mockOnHelpOpen,
})
);
// Simuler une touche de raccourci
const event = new KeyboardEvent('keydown', {
key: '?',
ctrlKey: false,
shiftKey: false,
altKey: false,
metaKey: false,
});
document.dispatchEvent(event);
// Le hook devrait réagir aux événements clavier
expect(mockOnHelpOpen).toBeDefined();
});
it('should handle empty options', () => {
renderHook(() => useGlobalKeyboardShortcuts({}));
// Le hook devrait fonctionner même sans options
expect(true).toBe(true);
});
});