import { expect, test } from "@playwright/test"; test.describe("Invoice Processing columns drawer (AP-45)", () => { test("Columns drawer can hide Tagging and Reset restores it", async ({ page }) => { await page.goto("/"); await expect( page.getByTestId("grid-pending").locator('.MuiDataGrid-columnHeader[data-field="tagging"]'), ).toBeVisible(); await page.getByTestId("columns-toggle").click(); const drawer = page.getByTestId("columns-drawer"); await expect(drawer).toBeVisible(); const taggingRow = drawer.getByTestId("columns-visible-tagging"); await taggingRow.scrollIntoViewIfNeeded(); await taggingRow.locator('input[type="checkbox"]').evaluate((el: HTMLInputElement) => { el.click(); }); await expect( page.getByTestId("grid-pending").locator('.MuiDataGrid-columnHeader[data-field="tagging"]'), ).toHaveCount(0); await drawer.getByTestId("columns-selector-reset-button").evaluate((el: HTMLElement) => { el.click(); }); await expect( page.getByTestId("grid-pending").locator('.MuiDataGrid-columnHeader[data-field="tagging"]'), ).toBeVisible(); }); test("locked Vendor column stays visible and Reset clears the hidden search", async ({ page, }) => { await page.goto("/"); await page.getByTestId("columns-toggle").click(); const drawer = page.getByTestId("columns-drawer"); const vendorBox = drawer .getByTestId("columns-visible-vendor") .locator('input[type="checkbox"]'); await expect(vendorBox).toBeDisabled(); await vendorBox.evaluate((el: HTMLInputElement) => { el.disabled = false; el.click(); }); await expect( page .getByTestId("grid-pending") .locator('.MuiDataGrid-columnHeader[data-field="vendorName"]'), ).toBeVisible(); await page.getByTestId("tab-ready").click(); await expect( page.getByTestId("grid-ready").locator('.MuiDataGrid-columnHeader[data-field="vendorName"]'), ).toBeVisible(); const search = drawer.getByTestId("columns-hidden-search"); await search.fill("no-such-column"); await drawer.getByTestId("columns-selector-reset-button").evaluate((el: HTMLElement) => { el.click(); }); await expect(search).toHaveValue(""); }); });