修正 ERP 边界与资产页面一致性(05-30-fix-erp-boundary-asset-consistency)
这个提交包含在:
@@ -2,8 +2,8 @@ import { expect, test, type Locator, type Page } from "@playwright/test";
|
||||
|
||||
import { openNavLink } from "./helpers/navigation";
|
||||
|
||||
const FINANCE_MGR = { identifier: "[email protected]", password: "FinanceMgrPassword1234", name: "Finance Manager" };
|
||||
const ADMINISTRATION = { identifier: "[email protected]", password: "AdministrationPassword1234", name: "Administration" };
|
||||
const FINANCE_MGR = { identifier: "[email protected]", password: "FinanceMgrPassword1234", name: "钱主管", employeeNo: "HYD000005" };
|
||||
const ADMINISTRATION = { identifier: "[email protected]", password: "AdministrationPassword1234", name: "周行政", employeeNo: "HYD000008" };
|
||||
|
||||
async function login(page: Page, user: { identifier: string; password: string }) {
|
||||
await page.goto("/login");
|
||||
@@ -130,26 +130,26 @@ test("E2E 资产流转主链路:建卡→领用归还→调拨→盘点", asyn
|
||||
await page.goto(`/assets?id=${assetId}`);
|
||||
await expect(page.getByTestId("asset-name")).toHaveValue(assetName, { timeout: 30_000 });
|
||||
|
||||
await selectOptionByText(page.getByTestId("asset-movement-assignee"), /Employee/);
|
||||
await selectOptionByText(page.getByTestId("asset-movement-assignee"), /陈工程/);
|
||||
await page.getByTestId("asset-movement-note").fill("Playwright 首次领用");
|
||||
if (await page.getByText(/当前归属人:未分配/).isVisible().catch(() => false)) {
|
||||
if (await page.getByText(/归属人:-/).isVisible().catch(() => false)) {
|
||||
await page.getByTestId("asset-assign-submit").click();
|
||||
} else {
|
||||
await page.getByTestId("asset-transfer-submit").click();
|
||||
}
|
||||
await expect(page.getByText(/当前归属人:Employee/)).toBeVisible({ timeout: 30_000 });
|
||||
await expect(page.getByText(/归属人:陈工程/)).toBeVisible({ timeout: 30_000 });
|
||||
|
||||
await page.getByTestId("asset-return-submit").click();
|
||||
await expect(page.getByText(/当前归属人:未分配/)).toBeVisible({ timeout: 30_000 });
|
||||
await expect(page.getByText(/归属人:-/)).toBeVisible({ timeout: 30_000 });
|
||||
|
||||
await selectOptionByText(page.getByTestId("asset-movement-assignee"), /Employee/);
|
||||
await selectOptionByText(page.getByTestId("asset-movement-assignee"), /陈工程/);
|
||||
await page.getByTestId("asset-assign-submit").click();
|
||||
await expect(page.getByText(/当前归属人:Employee/)).toBeVisible({ timeout: 30_000 });
|
||||
await expect(page.getByText(/归属人:陈工程/)).toBeVisible({ timeout: 30_000 });
|
||||
|
||||
await selectOptionByText(page.getByTestId("asset-movement-assignee"), /Finance Manager/);
|
||||
await selectOptionByText(page.getByTestId("asset-movement-assignee"), /钱主管/);
|
||||
await page.getByTestId("asset-movement-location").fill("深圳办公室 B-02");
|
||||
await page.getByTestId("asset-transfer-submit").click();
|
||||
await expect(page.getByText(/当前归属人:Finance Manager/)).toBeVisible({ timeout: 30_000 });
|
||||
await expect(page.getByText(/归属人:钱主管/)).toBeVisible({ timeout: 30_000 });
|
||||
await expect(page.getByText(/位置:深圳办公室 B-02/)).toBeVisible({ timeout: 30_000 });
|
||||
|
||||
await logout(page, ADMINISTRATION.name);
|
||||
|
||||
在新工单中引用
屏蔽一个用户