// DoD scenario e2e_roundtrip_noop (SD-0002 §6.8, PUC-10): exporting then // re-importing the unmodified file previews as all-unchanged with the import // action disabled and the "Nothing to change" note. import { expect, test } from "@playwright/test"; import { exportCatalog, gotoProducts, importGoodCsv, signUpWithStorefront } from "../helpers"; test("e2e_roundtrip_noop", async ({ page }) => { await signUpWithStorefront(page); await gotoProducts(page); await importGoodCsv(page); await gotoProducts(page); // Export the catalog, then re-import the unmodified file. const { path } = await exportCatalog(page, "All products"); await page.getByRole("link", { name: "Import products" }).first().click(); await expect(page.getByRole("heading", { name: "Import products" })).toBeVisible(); await page.locator('input[type="file"]').setInputFiles(path); // Preview: everything unchanged, nothing to add/update (PUC-10). await expect(page.getByRole("button", { name: "2 unchanged" })).toBeVisible(); await expect(page.getByRole("button", { name: "0 to add" })).toBeVisible(); await expect(page.getByRole("button", { name: "0 to update" })).toBeVisible(); // The import action is disabled, with the no-op note. const importBtn = page.getByRole("button", { name: /^Import 0 products$/ }); await expect(importBtn).toBeDisabled(); await expect( page.getByText("Nothing to change — your catalog already matches this file"), ).toBeVisible(); });