test(e2e): SLICE-5 scenarios — preview/confirm, errors, rejection, cancel (§6.8)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 16:53:59 -07:00
parent a58f42cf86
commit ad738adbc0
5 changed files with 138 additions and 20 deletions
+23
View File
@@ -0,0 +1,23 @@
// DoD scenario e2e_import_cancel_no_trace (SD-0002 §6.8): cancelling at the
// preview gate (PUC-3a) leaves no trace — no products, no run in the history.
import { expect, test } from "@playwright/test";
import { gotoProducts, signUpWithStorefront, uploadFixture } from "../helpers";
test("e2e_import_cancel_no_trace", async ({ page }) => {
await signUpWithStorefront(page);
await gotoProducts(page);
await uploadFixture(page, "good.csv");
// The preview gate is up.
await expect(page.getByRole("heading", { name: "Import preview — good.csv" })).toBeVisible();
await expect(page.getByRole("button", { name: "2 to add" })).toBeVisible();
await page.getByRole("button", { name: "Cancel" }).click();
// Lands back on Products — still the empty state, no run recorded.
await expect(page.getByRole("heading", { level: 1, name: "Products" })).toBeVisible();
await expect(
page.getByText("No products yet. Bulk import is how product data gets in."),
).toBeVisible();
await expect(page.getByText("No imports yet.")).toBeVisible();
});