import { describe, it, expect } from "vitest"; import { render } from "@testing-library/react"; import { Skeleton, SkeletonCircle, RoomCardSkeleton, ProfileCardSkeleton, RecordItemSkeleton, SwipeDeckSkeleton, BlindboxRoomSkeleton, BlindboxListSkeleton, } from "./Skeleton"; describe("Skeleton", () => { it("renders with animate-pulse", () => { const { container } = render(); expect(container.firstChild).toHaveClass("animate-pulse"); }); it("accepts custom className", () => { const { container } = render(); const el = container.firstChild as HTMLElement; expect(el.className).toContain("h-4"); expect(el.className).toContain("w-20"); }); }); describe("SkeletonCircle", () => { it("renders rounded-full shape", () => { const { container } = render(); expect(container.firstChild).toHaveClass("rounded-full"); }); }); describe("Skeleton composites", () => { it("renders RoomCardSkeleton", () => { const { container } = render(); expect(container.querySelectorAll(".animate-pulse").length).toBeGreaterThan(0); }); it("renders ProfileCardSkeleton", () => { const { container } = render(); expect(container.querySelectorAll(".animate-pulse").length).toBeGreaterThan(0); }); it("renders RecordItemSkeleton", () => { const { container } = render(); expect(container.querySelectorAll(".animate-pulse").length).toBeGreaterThan(0); }); it("renders SwipeDeckSkeleton", () => { const { container } = render(); expect(container.querySelectorAll(".animate-pulse").length).toBeGreaterThan(0); }); it("renders BlindboxRoomSkeleton", () => { const { container } = render(); expect(container.querySelectorAll(".animate-pulse").length).toBeGreaterThan(0); }); it("renders BlindboxListSkeleton", () => { const { container } = render(); expect(container.querySelectorAll(".animate-pulse").length).toBeGreaterThan(0); }); });