统一首批页面成熟设计基线(05-30-unified-page-design-review)
这个提交包含在:
@@ -591,8 +591,8 @@ test("个人设置默认只展示账号通知和企业微信,不展示权限 c
|
||||
|
||||
await expect(page.getByRole("heading", { name: "个人设置" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "个人资料" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "密码与安全" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "通知设置" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "账号安全" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "通知偏好" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "企业微信绑定" })).toBeVisible();
|
||||
await expect(page.getByText("账号详情")).toBeVisible();
|
||||
await expect(page.getByRole("link", { name: "查看员工档案" })).toHaveCount(0);
|
||||
|
||||
@@ -330,9 +330,8 @@ test("PC 核心工作流 Wave2 视觉截图", async ({ page }) => {
|
||||
await expect(page.locator(".ops-command-bar").first()).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-tasks-focus")).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-task-summary")).toHaveCount(0);
|
||||
await expect(page.getByTestId("workflow-tasks-status-tabs")).toHaveCount(0);
|
||||
await page.getByTestId("workflow-tasks-advanced-toggle").click();
|
||||
await expect(page.getByTestId("workflow-tasks-advanced-panel")).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-task-summary")).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-tasks-status-tabs")).toBeVisible();
|
||||
await page.getByTestId("workflow-tasks-tab-processed").click();
|
||||
await expect(page.getByTestId("workflow-tasks-processed-status-filter")).toBeVisible();
|
||||
await capture(page, "04-workflow-tasks");
|
||||
});
|
||||
|
||||
@@ -1070,12 +1070,19 @@ test("Wave3 PC 详情和通知中心视觉截图", async ({ page }) => {
|
||||
await page.screenshot({ path: screenshotPath("01-pc-reimbursement-detail.png"), fullPage: true });
|
||||
|
||||
await page.goto("/workflow/tasks/task-wave3");
|
||||
await expect(page.getByRole("heading", { name: /任务详情/ })).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-task-next-action")).toBeVisible();
|
||||
await expect(page.getByText("审批动作")).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "审批详情" })).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-task-next-action")).toHaveCount(0);
|
||||
await expect(page.getByText("审批动作")).toHaveCount(0);
|
||||
await expect(page.getByRole("heading", { name: "处理", exact: true })).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-task-overview")).toBeVisible();
|
||||
await page.screenshot({ path: screenshotPath("02-pc-workflow-detail.png"), fullPage: true });
|
||||
|
||||
await page.goto("/notifications");
|
||||
await expect(page.getByRole("heading", { name: "通知" })).toBeVisible();
|
||||
await expect(page.getByTestId("notification-row").first()).toBeVisible();
|
||||
await expect(page.locator("table")).toHaveCount(0);
|
||||
await page.screenshot({ path: screenshotPath("03-pc-notifications.png"), fullPage: true });
|
||||
|
||||
await page.goto("/projects");
|
||||
await expect(page.getByRole("heading", { name: "项目", exact: true })).toBeVisible();
|
||||
await expect(page.getByText("默认只看我负责/我参与")).toBeVisible();
|
||||
@@ -1102,13 +1109,8 @@ test("Wave3 PC 详情和通知中心视觉截图", async ({ page }) => {
|
||||
await page.getByTestId("contracts-registry-row").getByRole("button", { name: "归档" }).click();
|
||||
await expect(page.getByTestId("action-confirm-dialog")).toContainText("确认归档");
|
||||
await page.getByTestId("action-confirm-cancel").click();
|
||||
await expect(page.getByTestId("action-confirm-dialog")).toHaveCount(0);
|
||||
await page.screenshot({ path: screenshotPath("04-pc-contracts-registry.png"), fullPage: true });
|
||||
|
||||
await page.goto("/notifications");
|
||||
await expect(page.getByRole("heading", { name: "通知" })).toBeVisible();
|
||||
await expect(page.getByTestId("notification-row").first()).toBeVisible();
|
||||
await expect(page.locator("table")).toHaveCount(0);
|
||||
await page.screenshot({ path: screenshotPath("05-pc-notifications.png"), fullPage: true });
|
||||
});
|
||||
|
||||
test("Wave3 移动关键页视觉截图", async ({ page }) => {
|
||||
@@ -1137,7 +1139,7 @@ test("Wave3 移动关键页视觉截图", async ({ page }) => {
|
||||
await page.screenshot({ path: screenshotPath("06-mobile-reimbursement-detail.png"), fullPage: true });
|
||||
|
||||
await page.goto("/mobile/approvals");
|
||||
await expect(page.getByRole("heading", { name: "待办", exact: true })).toBeVisible();
|
||||
await expect(page.locator("h1", { hasText: "待我处理" })).toBeVisible();
|
||||
await expect(page.getByTestId("mobile-approvals-focus")).toBeVisible();
|
||||
await expect(page.getByTestId("mobile-approvals-list")).toBeVisible();
|
||||
await expect(page.locator("table")).toHaveCount(0);
|
||||
|
||||
@@ -551,7 +551,7 @@ test.describe("R124 企业微信移动入口矩阵", () => {
|
||||
await expect(mobile.page).toHaveURL(/\/mobile\/profile$/);
|
||||
await expect(mobile.page.getByTestId("mobile-profile-page")).toBeVisible();
|
||||
await expect(mobile.page.getByTestId("mobile-profile-wecom-card")).toBeVisible();
|
||||
await expect(mobile.page.getByRole("heading", { name: "密码与安全" })).toBeVisible();
|
||||
await expect(mobile.page.getByRole("heading", { name: "账号安全" })).toBeVisible();
|
||||
await expect(mobile.page.getByRole("heading", { name: "组织与角色摘要" })).toBeVisible();
|
||||
await expect(mobile.page.getByText("active", { exact: true })).toHaveCount(0);
|
||||
await expect(mobile.page.getByText("manager", { exact: true })).toHaveCount(0);
|
||||
|
||||
@@ -399,7 +399,7 @@ test.describe("visual shell", () => {
|
||||
|
||||
await page.goto("/reimbursements?status=reviewing&scope=all");
|
||||
await expect(page.getByTestId("reimbursements-table")).toBeVisible();
|
||||
await expect(page.getByRole("link", { name: "查看处理" })).toBeVisible();
|
||||
await expect(page.getByTestId("reimbursement-detail-link").filter({ hasText: "处理" })).toBeVisible();
|
||||
await expect(page.getByRole("button", { name: "批量操作" })).toHaveCount(0);
|
||||
await expect(page.getByRole("button", { name: "批量通过" })).toHaveCount(0);
|
||||
await expect(page.getByRole("button", { name: "批量驳回" })).toHaveCount(0);
|
||||
@@ -427,7 +427,7 @@ test.describe("visual shell", () => {
|
||||
|
||||
await expect(page.getByTestId("workflow-tasks-mobile-list")).toBeVisible();
|
||||
await expect(page.getByTestId("workflow-tasks-table")).toBeHidden();
|
||||
await expect(page.getByRole("link", { name: "查看" })).toBeVisible();
|
||||
await expect(page.getByRole("link", { name: "处理" })).toBeVisible();
|
||||
|
||||
await attachScreenshot(page, testInfo, "r97-workflow-tasks-mobile.png");
|
||||
});
|
||||
|
||||
@@ -299,12 +299,14 @@ test.describe("R7E 审批动作二次确认", () => {
|
||||
await page.getByTestId("workflow-action-confirm-cancel").click();
|
||||
expect(actionCalls.approve).toBe(0);
|
||||
|
||||
await page.getByTestId("workflow-task-reject-toggle").click();
|
||||
await page.getByTestId("workflow-task-reject-comment").fill("资料不符合要求,请重新发起。");
|
||||
await page.getByTestId("workflow-task-reject").click();
|
||||
await expect(page.getByTestId("workflow-action-confirm-dialog")).toContainText("流程将终止");
|
||||
await page.getByTestId("workflow-action-confirm-cancel").click();
|
||||
expect(actionCalls.reject).toBe(0);
|
||||
|
||||
await page.getByTestId("workflow-task-return-toggle").click();
|
||||
await page.getByTestId("workflow-task-return-comment").fill("请补充附件后重新提交。");
|
||||
await page.getByTestId("workflow-task-return").click();
|
||||
await expect(page.getByTestId("workflow-action-confirm-dialog")).toContainText("回到申请人修改态");
|
||||
|
||||
@@ -212,7 +212,7 @@ async function mockWorkflowBoundaryApis(page: Page) {
|
||||
return actionCalls;
|
||||
}
|
||||
|
||||
test("审批列表边界:企微主办请假只进入查看处理", async ({ page }) => {
|
||||
test("审批列表边界:企微主办请假只进入处理详情", async ({ page }) => {
|
||||
const actionCalls = await mockWorkflowBoundaryApis(page);
|
||||
|
||||
await login(page, MANAGER);
|
||||
|
||||
在新工单中引用
屏蔽一个用户