Import tests: tests/e2e/panel
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
import { expect, test } from "@playwright/test";
|
||||||
|
|
||||||
|
test("login and dashboard navigation", async ({ page }) => {
|
||||||
|
await page.goto("/login");
|
||||||
|
await page.locator('input[name="password"]').fill("correct-password");
|
||||||
|
await page.getByRole("button", { name: "Sign in" }).click();
|
||||||
|
await expect(page.getByRole("heading", { name: "Dashboard" })).toBeVisible();
|
||||||
|
await expect(page.getByRole("heading", { name: "Resource usage" })).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("tool search finds terminal", async ({ page }) => {
|
||||||
|
await page.goto("/tools");
|
||||||
|
await page.getByPlaceholder("Search all CoaxysPanel tools").fill("terminal");
|
||||||
|
await expect(page.getByRole("link", { name: /Terminal/ }).first()).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("website creation wizard validates", async ({ page }) => {
|
||||||
|
await page.goto("/websites/new");
|
||||||
|
await page.getByRole("button", { name: "Continue" }).click();
|
||||||
|
await expect(page.getByText("Use at least three characters.").first()).toBeVisible();
|
||||||
|
await page.getByLabel("Name").fill("Production site");
|
||||||
|
await page.getByRole("button", { name: "Continue" }).click();
|
||||||
|
await expect(page.getByRole("heading", { name: "Domain selection" })).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("dns record editor renders records", async ({ page }) => {
|
||||||
|
await page.goto("/domains/example.com/dns");
|
||||||
|
await expect(page.getByRole("heading", { name: "DNS Zone Editor" })).toBeVisible();
|
||||||
|
await expect(page.getByText("www.example.com.")).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("file manager exposes core actions", async ({ page }) => {
|
||||||
|
await page.goto("/files");
|
||||||
|
await expect(page.getByRole("button", { name: "Upload" }).first()).toBeVisible();
|
||||||
|
await expect(page.getByText("index.php")).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("database and email creation entry points render", async ({ page }) => {
|
||||||
|
await page.goto("/databases/new");
|
||||||
|
await expect(page.getByRole("heading", { name: "Database name" })).toBeVisible();
|
||||||
|
await page.goto("/email/accounts");
|
||||||
|
await expect(page.getByText("admin@example.com")).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("backup and security screens render", async ({ page }) => {
|
||||||
|
await page.goto("/backups/new");
|
||||||
|
await expect(page.getByRole("heading", { name: "Scope" })).toBeVisible();
|
||||||
|
await page.goto("/security");
|
||||||
|
await expect(page.getByText("86/100")).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("theme switching menu opens", async ({ page }) => {
|
||||||
|
await page.goto("/dashboard");
|
||||||
|
await page.getByLabel("Theme selector").click();
|
||||||
|
await page.getByRole("menuitem", { name: "dark" }).click();
|
||||||
|
await expect(page.locator("html")).toHaveClass(/dark/);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user