Files
famapp/tests/e2e/navigation.spec.ts
T

64 lines
2.4 KiB
TypeScript

import { expect, test } from "@playwright/test";
test.describe("detail page back navigation", () => {
test("plant detail returns to plants tab", async ({ page }) => {
const suffix = Date.now().toString();
const plantName = `Back Nav Plant ${suffix}`;
await page.goto("/garden?tab=plants");
await page.getByRole("link", { name: /add plant/i }).click();
await page.getByLabel("Name").fill(plantName);
await page.getByRole("button", { name: /create/i }).click();
await expect(page).toHaveURL(/\/garden\/plants\//);
const backLink = page.getByRole("link", { name: "Back to Plants" });
await expect(backLink).toBeVisible();
await backLink.click();
await expect(page).toHaveURL(/\/garden\?tab=plants$/);
await expect(page.getByRole("heading", { name: "Garden" })).toBeVisible();
await page.getByText(plantName).click();
await page.getByRole("button", { name: /delete/i }).click();
await page.getByRole("button", { name: /confirm/i }).click();
});
test("note detail returns to notes index", async ({ page }) => {
const suffix = Date.now().toString();
const title = `Back Nav Note ${suffix}`;
await page.goto("/notes/new");
await page.getByLabel("Title").fill(title);
await page.getByRole("button", { name: "Save note" }).click();
await expect(page).toHaveURL(/\/notes\/[0-9a-f-]+$/);
const backLink = page.getByRole("link", { name: "Back to Notes" });
await expect(backLink).toBeVisible();
await backLink.click();
await expect(page).toHaveURL(/\/notes$/);
await expect(page.getByRole("heading", { name: "Notes" })).toBeVisible();
await page.getByRole("link", { name: new RegExp(title) }).click();
await page.getByRole("button", { name: "Delete note" }).click();
});
test("list detail returns to lists index", async ({ page }) => {
const suffix = Date.now().toString();
const listName = `Back Nav List ${suffix}`;
await page.goto("/lists");
await page.getByLabel("Type").fill("task");
await page.getByLabel("Name").fill(listName);
await page.getByRole("button", { name: "New list" }).click();
await page.getByRole("link", { name: new RegExp(listName) }).click();
const backLink = page.getByRole("link", { name: "Back to Lists" });
await expect(backLink).toBeVisible();
await backLink.click();
await expect(page).toHaveURL(/\/lists$/);
await expect(page.getByRole("heading", { name: "Lists" })).toBeVisible();
});
});