import { describe, it, expect, vi } from "vitest"; import userEvent from "@testing-library/user-event"; import type { Task } from "@modelcontextprotocol/sdk/types.js"; import { renderWithMantine, screen } from "../../../test/renderWithMantine"; import { TasksScreen } from "./TasksScreen"; const tasks: Task[] = [ { taskId: "t1", status: "working", createdAt: new Date().toISOString(), lastUpdatedAt: new Date().toISOString(), pollInterval: 1000, ttl: 60000, }, ]; const baseProps = { tasks, onRefresh: vi.fn(), onClearCompleted: vi.fn(), onCancel: vi.fn(), }; describe("TasksScreen", () => { it("renders the controls and list", () => { renderWithMantine(); expect(screen.getAllByText("Tasks").length).toBeGreaterThan(0); }); it("renders an empty list when no tasks are provided", () => { renderWithMantine(); expect(screen.getAllByText("Tasks").length).toBeGreaterThan(0); }); it("invokes onRefresh when refresh is clicked", async () => { const user = userEvent.setup(); const onRefresh = vi.fn(); renderWithMantine(); await user.click(screen.getByRole("button", { name: "Refresh" })); expect(onRefresh).toHaveBeenCalledTimes(1); }); });