mirror of
https://github.com/OpenHands/OpenHands.git
synced 2026-03-22 13:47:19 +08:00
Co-authored-by: openhands <openhands@all-hands.dev> Co-authored-by: Hiep Le <69354317+hieptl@users.noreply.github.com> Co-authored-by: Abhay Mishra <grabhaymishra@gmail.com> Co-authored-by: Hyun Han <62870362+smosco@users.noreply.github.com> Co-authored-by: Nhan Nguyen <nhan13574@gmail.com> Co-authored-by: Bharath A V <avbharath1221@gmail.com> Co-authored-by: hieptl <hieptl.developer@gmail.com> Co-authored-by: Chloe <chloe@openhands.com> Co-authored-by: HeyItsChloe <54480367+HeyItsChloe@users.noreply.github.com>
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { render, screen } from "@testing-library/react";
|
|
import { describe, expect, it } from "vitest";
|
|
import { UserAvatar } from "#/components/features/sidebar/user-avatar";
|
|
|
|
describe("UserAvatar", () => {
|
|
it("(default) should render the placeholder avatar when the user is logged out", () => {
|
|
render(<UserAvatar />);
|
|
expect(screen.getByTestId("user-avatar")).toBeInTheDocument();
|
|
expect(
|
|
screen.getByLabelText("USER$AVATAR_PLACEHOLDER"),
|
|
).toBeInTheDocument();
|
|
});
|
|
|
|
it("should display the user's avatar when available", () => {
|
|
render(<UserAvatar avatarUrl="https://example.com/avatar.png" />);
|
|
|
|
expect(screen.getByAltText("AVATAR$ALT_TEXT")).toBeInTheDocument();
|
|
expect(
|
|
screen.queryByLabelText("USER$AVATAR_PLACEHOLDER"),
|
|
).not.toBeInTheDocument();
|
|
});
|
|
|
|
it("should display a loading spinner instead of an avatar when isLoading is true", () => {
|
|
const { rerender } = render(<UserAvatar />);
|
|
expect(screen.queryByTestId("loading-spinner")).not.toBeInTheDocument();
|
|
expect(
|
|
screen.getByLabelText("USER$AVATAR_PLACEHOLDER"),
|
|
).toBeInTheDocument();
|
|
|
|
rerender(<UserAvatar isLoading />);
|
|
expect(screen.getByTestId("loading-spinner")).toBeInTheDocument();
|
|
expect(
|
|
screen.queryByLabelText("USER$AVATAR_PLACEHOLDER"),
|
|
).not.toBeInTheDocument();
|
|
|
|
rerender(
|
|
<UserAvatar avatarUrl="https://example.com/avatar.png" isLoading />,
|
|
);
|
|
expect(screen.getByTestId("loading-spinner")).toBeInTheDocument();
|
|
expect(screen.queryByAltText("AVATAR$ALT_TEXT")).not.toBeInTheDocument();
|
|
});
|
|
});
|