import { describe, expect, it, vi } from "vitest"; import { render, screen } from "@testing-library/react"; import { DataBoundary } from "../DataBoundary"; vi.mock("lucide-react", () => ({ AlertCircle: () => , Bot: () => 🤖, Folder: () => 📁, Activity: () => 📊, CheckCircle: () => , })); describe("DataBoundary", () => { it("renders the loading fallback before the first fetch completes", () => { render( Loading} >
Loaded content
); expect(screen.getByTestId("loading-fallback")).toBeDefined(); expect(screen.queryByText("Loaded content")).toBeNull(); }); it("renders an empty state after fetch completion instead of an infinite skeleton", () => { render(
Loaded content
); expect(screen.getByText("No data available")).toBeDefined(); expect(screen.queryByText("Loaded content")).toBeNull(); }); it("renders an error state when error is set", () => { render(
Loaded content
); expect(screen.getByTestId("data-boundary-error")).toBeDefined(); expect(screen.getByText("Boom")).toBeDefined(); }); it("renders children when data is present", () => { render(
Loaded content
); expect(screen.getByText("Loaded content")).toBeDefined(); expect(screen.queryByText("No data available")).toBeNull(); }); });