64 lines
2.4 KiB
TypeScript
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();
|
|
});
|
|
});
|