import { fireEvent, render, screen } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { AgentAvatar } from "../AgentAvatar"; describe("AgentAvatar", () => { it("renders image when imageUrl is set", () => { render(); expect(screen.getByRole("img", { name: "Agent One avatar" })).toBeTruthy(); }); it("renders emoji when icon is set and no imageUrl", () => { render(); expect(screen.getByText("🤖")).toBeTruthy(); }); it("renders bot fallback when neither imageUrl nor icon is set", () => { const { container } = render(); expect(container.querySelector("svg")).toBeTruthy(); }); it("falls back to emoji when image fails", () => { render(); const img = screen.getByRole("img", { name: "Agent One avatar" }); fireEvent.error(img); expect(screen.getByText("⚙️")).toBeTruthy(); }); it("applies width and height from size prop", () => { const { container } = render(); const avatar = container.querySelector(".agent-avatar") as HTMLElement; expect(avatar.style.width).toBe("52px"); expect(avatar.style.height).toBe("52px"); }); it("includes cache-bust query param when updatedAt exists", () => { render(); const img = screen.getByRole("img", { name: "Agent One avatar" }) as HTMLImageElement; expect(img.src).toContain("/avatar?t=2026-05-05T00%3A00%3A00.000Z"); }); });