import { describe, it, expect, beforeEach } from "vitest"; import { render, screen } from "@testing-library/react"; import App from "@/App"; import { useFocusStore } from "@/stores/focus-store"; import { useNavStore } from "@/stores/nav-store"; describe("App", () => { beforeEach(() => { useNavStore.setState({ activeView: "focus" }); useFocusStore.setState({ current: null, queue: [], isLoading: false, error: null, }); }); it("renders the app shell with navigation", () => { render(); expect(screen.getByText("Focus")).toBeInTheDocument(); expect(screen.getByText("Queue")).toBeInTheDocument(); }); it("renders the focus view with empty state by default", () => { render(); expect(screen.getByText(/all clear/i)).toBeInTheDocument(); }); it("shows loading state", () => { useFocusStore.setState({ isLoading: true }); render(); expect(screen.getByText(/loading/i)).toBeInTheDocument(); }); it("shows error state", () => { useFocusStore.setState({ error: "Connection failed" }); render(); expect(screen.getByText("Connection failed")).toBeInTheDocument(); }); });