import { describe, expect, it } from "vitest"; import { screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { ForgePage } from "./ForgePage"; import { renderWithProviders } from "@/test/test-utils"; describe("ForgePage", () => { it("renders forge & deploy page without crash", async () => { renderWithProviders(); expect( screen.getByRole("heading", { name: /Forge & Deploy/i }), ).toBeInTheDocument(); // Dropper panel loads await waitFor(() => { expect(screen.getByText(/Install command/i)).toBeInTheDocument(); }); // Build list loads await waitFor(() => { expect(screen.getByText(/linux\/amd64/i)).toBeInTheDocument(); }); expect(screen.getAllByText("SIGNED").length).toBeGreaterThan(0); expect(screen.getByText("PUBLIC")).toBeInTheDocument(); }); it("shows the dropper one-liner", async () => { renderWithProviders(); await waitFor(() => { expect( screen.getByText(/FORGE_MESH_FLEET_SECRET/), ).toBeInTheDocument(); }); }); it("can trigger a build", async () => { const user = userEvent.setup(); renderWithProviders(); // Wait for page to settle await waitFor(() => { expect(screen.getByText(/linux\/amd64/i)).toBeInTheDocument(); }); await user.click( screen.getByRole("button", { name: /Build & Publish/i }), ); await waitFor(() => { expect( screen.getByText(/Build complete — artifacts signed and published/i), ).toBeInTheDocument(); }); }); });