import { afterEach, describe, expect, it, vi } from "vitest"; import { render, screen } from "@testing-library/react"; import Home from "@/app/page"; vi.mock("@/lib/i18n/get-locale", () => ({ getLocale: async () => "en" as const, })); afterEach(() => { vi.unstubAllGlobals(); }); describe("Home page", () => { it("renders hero, sections, and footer", async () => { vi.stubGlobal( "fetch", vi.fn(async (url: string) => { if (String(url).includes("git.fristy.net")) { return { ok: true, json: async () => [] } as Response; } return { ok: true, json: async () => ({ success: true, data: { discord_user: { id: "1", username: "testuser", global_name: "Test User", display_name: "Test User", discriminator: "0", avatar: null, bot: false, }, activities: [], discord_status: "offline", active_on_discord_desktop: false, active_on_discord_mobile: false, active_on_discord_web: false, listening_to_spotify: false, spotify: null, }, }), } as Response; }), ); render(await Home()); expect(screen.getByRole("heading", { level: 1 }).textContent).toBe("fristy"); expect(screen.getByText("@testuser")).toBeDefined(); }); });