mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-02 10:00:17 +05:30
feat(renderer): Zen mode (Esc exits, hides chrome)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
||||
import { renderHook } from '@testing-library/react';
|
||||
import { useZenMode } from '@/hooks/use-zen-mode';
|
||||
import { useAppStore } from '@/stores/app-store';
|
||||
|
||||
describe('useZenMode', () => {
|
||||
beforeEach(() => {
|
||||
localStorage.clear();
|
||||
useAppStore.setState({ ...useAppStore.getInitialState(), zenMode: true });
|
||||
});
|
||||
|
||||
it('attaches a keydown listener that exits zen mode on Escape', () => {
|
||||
renderHook(() => useZenMode());
|
||||
expect(useAppStore.getState().zenMode).toBe(true);
|
||||
|
||||
// Simulate Escape keydown
|
||||
const event = new KeyboardEvent('keydown', { key: 'Escape' });
|
||||
window.dispatchEvent(event);
|
||||
|
||||
expect(useAppStore.getState().zenMode).toBe(false);
|
||||
});
|
||||
|
||||
it('does nothing if zen mode is already off', () => {
|
||||
useAppStore.setState({ ...useAppStore.getInitialState(), zenMode: false });
|
||||
const setZenMode = vi.fn();
|
||||
useAppStore.setState({ setZenMode });
|
||||
renderHook(() => useZenMode());
|
||||
// No Escape dispatched; setZenMode should not be called
|
||||
expect(setZenMode).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user