import { render, screen } from "@testing-library/react"; import { it, describe, expect, vi, beforeEach, afterEach } from "vitest"; import userEvent from "@testing-library/user-event"; import { AuthModal } from "#/components/features/waitlist/auth-modal"; // Mock the useAuthUrl hook vi.mock("#/hooks/use-auth-url", () => ({ useAuthUrl: () => "https://gitlab.com/oauth/authorize", })); describe("AuthModal", () => { beforeEach(() => { vi.stubGlobal("location", { href: "" }); }); afterEach(() => { vi.unstubAllGlobals(); vi.resetAllMocks(); }); it("should render the GitHub and GitLab buttons", () => { render(); const githubButton = screen.getByRole("button", { name: "GITHUB$CONNECT_TO_GITHUB", }); const gitlabButton = screen.getByRole("button", { name: "GITLAB$CONNECT_TO_GITLAB", }); expect(githubButton).toBeInTheDocument(); expect(gitlabButton).toBeInTheDocument(); }); it("should redirect to GitHub auth URL when GitHub button is clicked", async () => { const user = userEvent.setup(); const mockUrl = "https://github.com/login/oauth/authorize"; render(); const githubButton = screen.getByRole("button", { name: "GITHUB$CONNECT_TO_GITHUB", }); await user.click(githubButton); expect(window.location.href).toBe(mockUrl); }); });