Ctrl K
ComunidadGuías…

e2e/inventory-deletion.spec.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { expect, test } from "@playwright/test";

for (const kind of ["printer", "electronic"] as const) test(`delete ${kind} with one confirmation and retain cancellation`, async ({ page }) => {
  await page.goto("/");
  await page.getByLabel("Workspace password").fill("demo-password-please-change");
  await page.getByRole("button", { name: "Sign in", exact: true }).click();
  await expect(page.getByRole("heading", { name: "Projects", exact: true })).toBeVisible();
  const name = `Deletion test ${kind}`;
  const result = await page.evaluate(async ({ name, kind }) => {
    const csrf = document.cookie.split("; ").find((entry) => entry.startsWith("forge_csrf="))?.split("=")[1];
    const response = await fetch("/api/v1/inventory", { method: "POST", headers: { "Content-Type": "application/json", "x-csrf-token": decodeURIComponent(csrf ?? "") }, body: JSON.stringify({ name, kind, quantity: 1, unit: "each", tags: [], links: [], evidence: { state: "physically_counted" } }) });
    return { status: response.status, data: await response.json() };
  }, { name, kind });
  expect(result.status).toBe(201);
  await page.reload();
  await page.getByRole("button", { name: /^Inventory(?: \d+)?$/u }).click();
  await page.getByRole("button", { name: new RegExp(`^Open ${name}`) }).click();
  const label = kind === "printer" ? "Delete printer" : "Delete item";
  await page.getByRole("button", { name: label, exact: true }).click();
  const dialog = page.getByRole("alertdialog", { name: `Delete ${name}?` });
  await dialog.getByRole("button", { name: "Cancel", exact: true }).click();
  await expect(page.getByRole("dialog")).toBeVisible();
  await page.getByRole("button", { name: label, exact: true }).click();
  await dialog.getByRole("button", { name: label, exact: true }).click();
  await expect(page.getByRole("alertdialog")).toHaveCount(0);
  await expect(page.getByRole("dialog")).toHaveCount(0);
  await expect(page.getByRole("button", { name: new RegExp(name) })).toHaveCount(0);
  await page.reload();
  await expect(page.getByRole("button", { name: new RegExp(name) })).toHaveCount(0);
});