Files
Remote-Terminal-for-MeshCore/frontend/src/test/useAppShell.test.ts
T
2026-03-09 20:59:52 -07:00

49 lines
1.3 KiB
TypeScript

import { act, renderHook } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import { useAppShell } from '../hooks/useAppShell';
describe('useAppShell', () => {
it('opens new-message modal and closes the sidebar', () => {
const { result } = renderHook(() => useAppShell());
act(() => {
result.current.setSidebarOpen(true);
result.current.handleOpenNewMessage();
});
expect(result.current.showNewMessage).toBe(true);
expect(result.current.sidebarOpen).toBe(false);
});
it('toggles settings mode and closes the sidebar', () => {
const { result } = renderHook(() => useAppShell());
act(() => {
result.current.setSidebarOpen(true);
result.current.handleToggleSettingsView();
});
expect(result.current.showSettings).toBe(true);
expect(result.current.sidebarOpen).toBe(false);
act(() => {
result.current.handleCloseSettingsView();
});
expect(result.current.showSettings).toBe(false);
});
it('toggles the cracker shell without affecting sidebar state', () => {
const { result } = renderHook(() => useAppShell());
act(() => {
result.current.setSidebarOpen(true);
result.current.handleToggleCracker();
});
expect(result.current.showCracker).toBe(true);
expect(result.current.sidebarOpen).toBe(true);
});
});