import "../../index.css"; import { page, userEvent } from "vite-plus/test/browser"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import { render } from "vitest-browser-react"; import type { DesktopCloudAuthOAuthOption } from "../../cloud/desktopAuth"; import { DesktopClerkSignInCard } from "./DesktopClerkSignIn"; const GOOGLE: DesktopCloudAuthOAuthOption = { strategy: "oauth_google", label: "Google", providerId: "google", iconUrl: null, }; const PROVIDERS: readonly DesktopCloudAuthOAuthOption[] = [ { strategy: "oauth_apple", label: "Apple", providerId: "apple", iconUrl: null, }, GOOGLE, { strategy: "oauth_microsoft", label: "Microsoft", providerId: "microsoft", iconUrl: null, }, ]; describe("DesktopClerkSignInCard", () => { afterEach(() => { document.body.innerHTML = ""; }); it("uses Clerk's compact provider grid when more than two providers are enabled", async () => { await render( , ); expect(document.querySelectorAll('button[aria-label^="Continue with "]')).toHaveLength(3); expect(document.body.textContent).toContain("Want early access?"); expect(document.body.textContent).not.toContain("Continue with Google"); }); it("renders a full provider label and starts OAuth for a single provider", async () => { const onStartOAuth = vi.fn(); await render( , ); await userEvent.click(page.getByRole("button", { name: "Continue with Google" })); expect(document.body.textContent).toContain("Continue with Google"); expect(onStartOAuth).toHaveBeenCalledWith("oauth_google"); }); });