Files
LINUX-AETHERFORGE/web/src/pages/ForgePage.test.tsx
drjones 3678b199d0
Some checks failed
Test / test (push) Has been cancelled
Initial commit: AetherForge Linux (forge-mesh) v0.1.0-dev
2026-07-04 09:31:23 +00:00

56 lines
1.6 KiB
TypeScript

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(<ForgePage />);
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(<ForgePage />);
await waitFor(() => {
expect(
screen.getByText(/FORGE_MESH_FLEET_SECRET/),
).toBeInTheDocument();
});
});
it("can trigger a build", async () => {
const user = userEvent.setup();
renderWithProviders(<ForgePage />);
// 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();
});
});
});