import { beforeAll, describe, expect, it, vi, afterEach } from "vitest"; import { useTerminal } from "#/hooks/use-terminal"; import { Command, useCommandStore } from "#/state/command-store"; import { renderWithProviders } from "../../test-utils"; // Mock the WsClient context vi.mock("#/context/ws-client-provider", () => ({ useWsClient: () => ({ send: vi.fn(), status: "CONNECTED", isLoadingMessages: false, events: [], }), })); function TestTerminalComponent() { const ref = useTerminal(); return
; } describe("useTerminal", () => { const mockTerminal = vi.hoisted(() => ({ loadAddon: vi.fn(), open: vi.fn(), write: vi.fn(), writeln: vi.fn(), onKey: vi.fn(), attachCustomKeyEventHandler: vi.fn(), dispose: vi.fn(), })); beforeAll(() => { // mock ResizeObserver window.ResizeObserver = vi.fn().mockImplementation(() => ({ observe: vi.fn(), unobserve: vi.fn(), disconnect: vi.fn(), })); // mock Terminal vi.mock("@xterm/xterm", async (importOriginal) => ({ ...(await importOriginal