From d7bffba4ac4d1cc47a03b96a9c97128e8c429085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Tue, 27 Oct 2026 15:20:58 +0100 Subject: [PATCH] fix(ui): stop avatar from requesting the current page (#13177) --- ui/changelog.d/avatar-self-request.fixed.md | 1 + .../layout/user-nav/user-nav.test.tsx | 34 +++++++++++++++++++ ui/components/layout/user-nav/user-nav.tsx | 7 +--- 3 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 ui/changelog.d/avatar-self-request.fixed.md create mode 100644 ui/components/layout/user-nav/user-nav.test.tsx diff --git a/ui/changelog.d/avatar-self-request.fixed.md b/ui/changelog.d/avatar-self-request.fixed.md new file mode 100644 index 0000000000..c233140cc1 --- /dev/null +++ b/ui/changelog.d/avatar-self-request.fixed.md @@ -0,0 +1 @@ +User avatar requesting the current page as an image on every load, which rendered each page twice diff --git a/ui/components/layout/user-nav/user-nav.test.tsx b/ui/components/layout/user-nav/user-nav.test.tsx new file mode 100644 index 0000000000..ac8cfecb76 --- /dev/null +++ b/ui/components/layout/user-nav/user-nav.test.tsx @@ -0,0 +1,34 @@ +import { render, screen } from "@testing-library/react"; +import { afterEach, describe, expect, it, vi } from "vitest"; + +import { TooltipProvider } from "@/components/shadcn/tooltip"; + +import { UserNav } from "./user-nav"; + +vi.mock("next-auth/react", () => ({ + useSession: () => ({ data: { user: { name: "Jane Doe" } } }), +})); + +vi.mock("@/actions/auth", () => ({ logOut: vi.fn() })); + +describe("UserNav", () => { + afterEach(() => { + vi.restoreAllMocks(); + }); + + it("renders the initials without requesting an avatar image", () => { + // Given + const imageSpy = vi.spyOn(window, "Image"); + + // When + render( + + + , + ); + + // Then + expect(screen.getByText("JD")).toBeInTheDocument(); + expect(imageSpy).not.toHaveBeenCalled(); + }); +}); diff --git a/ui/components/layout/user-nav/user-nav.tsx b/ui/components/layout/user-nav/user-nav.tsx index 20c5baf2a3..8381fcb0d9 100644 --- a/ui/components/layout/user-nav/user-nav.tsx +++ b/ui/components/layout/user-nav/user-nav.tsx @@ -4,11 +4,7 @@ import { LogOut } from "lucide-react"; import { useSession } from "next-auth/react"; import { logOut } from "@/actions/auth"; -import { - Avatar, - AvatarFallback, - AvatarImage, -} from "@/components/shadcn/avatar/avatar"; +import { Avatar, AvatarFallback } from "@/components/shadcn/avatar/avatar"; import { Button } from "@/components/shadcn/button/button"; import { CustomLink } from "@/components/shadcn/custom/custom-link"; import { @@ -43,7 +39,6 @@ export const UserNav = () => { > - {initials}