import { render, screen } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { MedicationAvatar } from "../../components/MedicationAvatar"; describe("MedicationAvatar", () => { it("renders initials when no image provided", () => { render(); expect(screen.getByText("TM")).toBeInTheDocument(); }); it("uses first two initials from medication name", () => { render(); expect(screen.getByText("VL")).toBeInTheDocument(); }); it("handles single word names", () => { render(); expect(screen.getByText("A")).toBeInTheDocument(); }); it("renders image when imageUrl provided", () => { render(); const img = screen.getByAltText("Test Med"); expect(img).toBeInTheDocument(); expect(img).toHaveAttribute("src", "/api/images/test-image.jpg"); }); it("applies small size class by default", () => { const { container } = render(); expect(container.querySelector(".med-avatar-sm")).toBeInTheDocument(); }); it("applies medium size class", () => { const { container } = render(); expect(container.querySelector(".med-avatar-md")).toBeInTheDocument(); }); it("applies large size class", () => { const { container } = render(); expect(container.querySelector(".med-avatar-lg")).toBeInTheDocument(); }); it("handles empty name with fallback", () => { render(); expect(screen.getByText("?")).toBeInTheDocument(); }); it("converts initials to uppercase", () => { render(); expect(screen.getByText("LC")).toBeInTheDocument(); }); it("adds initials class when no image", () => { const { container } = render(); expect(container.querySelector(".med-avatar-initials")).toBeInTheDocument(); }); });