统一业务台账首屏布局(05-30-fix-payment-ledger-layout-consistency)
这个提交包含在:
@@ -40,6 +40,7 @@ test("E2E 主链路:登录→报销→待办审批→票据OCR→支付→登
|
||||
const url = new URL(response.url());
|
||||
return response.request().method() === "POST" && url.pathname === "/api/invoice-pool/upload" && response.ok();
|
||||
});
|
||||
await page.getByRole("button", { name: "台账工具" }).click();
|
||||
await page.getByTestId("invoice-upload-file").setInputFiles({
|
||||
name: invoiceFileName,
|
||||
mimeType: "application/pdf",
|
||||
@@ -57,15 +58,15 @@ test("E2E 主链路:登录→报销→待办审批→票据OCR→支付→登
|
||||
|
||||
// 预览(popup 存在即可)
|
||||
const popupPromise = page.waitForEvent("popup");
|
||||
const invoiceRow = page.getByTestId("invoice-row").filter({ hasText: invoiceFileName }).first();
|
||||
await expect(invoiceRow).toBeVisible();
|
||||
await invoiceRow.getByRole("button").click();
|
||||
await page.getByTestId("invoice-preview-button").click();
|
||||
const popup = await popupPromise;
|
||||
await expect(popup).toHaveURL(new RegExp(`/api/invoice-pool/${invoiceId}`));
|
||||
await popup.close();
|
||||
|
||||
// 3) bind invoice to reimbursement
|
||||
await page.goto("/invoice-pool");
|
||||
await expect(page.getByTestId("invoice-pool-table")).toBeVisible();
|
||||
await page.getByRole("button", { name: "台账工具" }).click();
|
||||
await page.getByTestId("invoice-bind-invoice").selectOption(invoiceId);
|
||||
await page.getByTestId("invoice-bind-reimbursement").selectOption(reimbursementId);
|
||||
await page.getByTestId("invoice-bind-submit").click();
|
||||
|
||||
在新工单中引用
屏蔽一个用户