rewrite README; replace example e2e spec with a smoke test
README is now project-specific (features, stack, dev commands, docs). The Playwright spec checks home/inventories/wiki render and asserts no console errors.
This commit is contained in:
1 parent
6a07bd668d
commit
8bdf1c9be3
3 files changed
+110
-65
No files matched your search
@@ -1,9 +0,0 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
|
||||
test("homepage has title and links to intro page", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
|
||||
await expect(page).toHaveTitle("Welcome to Leptos");
|
||||
|
||||
await expect(page.locator("h1")).toHaveText("Welcome to Leptos!");
|
||||
});
|
||||
@@ -0,0 +1,56 @@
|
||||
import { test, expect, type Page } from "@playwright/test";
|
||||
|
||||
const BASE = "http://localhost:3000";
|
||||
|
||||
// Collects browser console errors and page errors for the duration of a test.
|
||||
function trackErrors(page: Page): string[] {
|
||||
const errors: string[] = [];
|
||||
page.on("console", (msg) => {
|
||||
if (msg.type() === "error") {
|
||||
errors.push(msg.text());
|
||||
}
|
||||
});
|
||||
page.on("pageerror", (err) => {
|
||||
errors.push(String(err));
|
||||
});
|
||||
return errors;
|
||||
}
|
||||
|
||||
test("home page: campaign name, version, nav", async ({ page }) => {
|
||||
const errors = trackErrors(page);
|
||||
await page.goto(`${BASE}/`);
|
||||
|
||||
await expect(page.locator("#campaign-name")).toHaveValue("В Поисках Дмитрия Шардалина");
|
||||
await expect(page.locator(".version")).toContainText("aex");
|
||||
await expect(page.locator(".main-nav a")).toHaveCount(3);
|
||||
await expect(page.locator(".main-nav")).toContainText("Персонаж");
|
||||
await expect(page.locator(".main-nav")).toContainText("Инвентарь");
|
||||
await expect(page.locator(".main-nav")).toContainText("Информация");
|
||||
|
||||
expect(errors).toEqual([]);
|
||||
});
|
||||
|
||||
test("inventories page: personal and common sections", async ({ page }) => {
|
||||
const errors = trackErrors(page);
|
||||
await page.goto(`${BASE}/inv`);
|
||||
|
||||
await expect(page.locator(".inventory-personal")).toHaveCount(1);
|
||||
await expect(page.locator(".inventory-common")).toHaveCount(1);
|
||||
// each section has one balance block with five currency inputs
|
||||
await expect(page.locator(".inventory-personal .balance .numput")).toHaveCount(5);
|
||||
await expect(page.locator(".inventory-common .balance .numput")).toHaveCount(5);
|
||||
// and at least one item row each
|
||||
await expect(page.locator(".inventory-personal .item").first()).toBeVisible();
|
||||
await expect(page.locator(".inventory-common .item").first()).toBeVisible();
|
||||
|
||||
expect(errors).toEqual([]);
|
||||
});
|
||||
|
||||
test("wiki page: stub renders", async ({ page }) => {
|
||||
const errors = trackErrors(page);
|
||||
await page.goto(`${BASE}/wiki`);
|
||||
|
||||
await expect(page.locator("body")).toContainText("books");
|
||||
|
||||
expect(errors).toEqual([]);
|
||||
});
|
||||
Reference in new issue
Block a user