import { afterEach, describe, expect, it } from "vitest"; import { cleanup, render, screen } from "@testing-library/react"; import "@testing-library/jest-dom/vitest"; import { StatusBadge, StatusDot, statusTone } from "../../components/status"; afterEach(cleanup); describe("statusTone", () => { it("maps common state words", () => { expect(statusTone("Running")).toBe("ok"); expect(statusTone("CrashLoopBackOff")).toBe("bad"); expect(statusTone("pending approval")).toBe("warn"); expect(statusTone("exited")).toBe("idle"); }); it("treats unknown and empty states as idle", () => { expect(statusTone("banana")).toBe("idle"); expect(statusTone(null)).toBe("idle"); }); }); describe("StatusBadge", () => { it("shows the state with its tone", () => { render(); expect(screen.getByText("failed")).toHaveClass("text-destructive"); }); it("lets a tone win over the state", () => { render( Fine , ); expect(screen.getByText("Fine")).toHaveClass("text-green-500"); }); }); describe("StatusDot", () => { it("colors by state", () => { render(); expect(screen.getByTitle("up")).toHaveClass("bg-green-500"); }); });