Initial commit: AetherForge Linux (forge-mesh) v0.1.0-dev
Some checks failed
Test / test (push) Has been cancelled
Some checks failed
Test / test (push) Has been cancelled
This commit is contained in:
55
web/src/pages/ForgePage.test.tsx
Normal file
55
web/src/pages/ForgePage.test.tsx
Normal file
@@ -0,0 +1,55 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user