部署并复检统一页面改造(05-30-deploy-unified-page-design-public-check)
这个提交包含在:
@@ -107,7 +107,7 @@ SYNC_ENV=0 bash deploy/trialrun/deploy.sh
|
||||
### 3. Contracts
|
||||
|
||||
- `assertPortalLoaded(page)` must assert route and page content first:
|
||||
`/portal` URL and the `今日任务` heading.
|
||||
`/portal` URL and the `今日待处理` heading.
|
||||
- Navigation-label assertions for the workbench link must accept both `工作台`
|
||||
and `Portal` while older mocks still use English labels.
|
||||
- Navigation assertions must be role-aware. Admin/manager smoke may assert
|
||||
@@ -121,11 +121,11 @@ SYNC_ENV=0 bash deploy/trialrun/deploy.sh
|
||||
|
||||
### 4. Validation & Error Matrix
|
||||
|
||||
- Page reaches `/portal`, `今日任务` is visible, but nav label is `工作台` ->
|
||||
- Page reaches `/portal`, `今日待处理` is visible, but nav label is `工作台` ->
|
||||
smoke should pass.
|
||||
- Employee reaches `/portal`, role-aware navigation hides `团队`, and employee
|
||||
pages such as `项目` remain reachable -> smoke should pass.
|
||||
- Page reaches `/portal`, but `今日任务` is missing -> smoke should fail.
|
||||
- Page reaches `/portal`, but `今日待处理` is missing -> smoke should fail.
|
||||
- Page stays on login, `/403`, error fallback or another route -> smoke should
|
||||
fail.
|
||||
- New shell label appears only in one live smoke test -> move the compatibility
|
||||
@@ -133,7 +133,7 @@ SYNC_ENV=0 bash deploy/trialrun/deploy.sh
|
||||
|
||||
### 5. Good/Base/Bad Cases
|
||||
|
||||
- Good: `assertPortalLoaded` checks `/portal`, `今日任务`, and a workbench link
|
||||
- Good: `assertPortalLoaded` checks `/portal`, `今日待处理`, and a workbench link
|
||||
matching either `工作台` or `Portal`.
|
||||
- Good: `assertMainNavVisible(page, { expectTeam: false })` is used for
|
||||
ordinary employee live smoke.
|
||||
|
||||
@@ -1510,8 +1510,10 @@ onNeedRefresh() {
|
||||
|
||||
### 4. Login Entry Hierarchy
|
||||
|
||||
- Normal browser: account/password login is primary; Enterprise WeChat and OIDC
|
||||
entries belong below the primary submit button as secondary methods.
|
||||
- Normal browser: account/password or email-code login is primary. Enterprise
|
||||
WeChat is shown as a boundary notice or secondary entry that tells users to
|
||||
open OA from the Enterprise WeChat workbench; do not require a clickable OAuth
|
||||
button in ordinary browsers.
|
||||
- Enterprise WeChat WebView: Enterprise WeChat one-click entry is primary;
|
||||
account/password login remains available as the fallback path.
|
||||
- Enterprise WeChat entry changes must remain frontend entry hierarchy changes
|
||||
@@ -1528,7 +1530,7 @@ onNeedRefresh() {
|
||||
- keyboard Tab from the username/email field lands on the password input, not
|
||||
the forgot-password link;
|
||||
- password recovery request-code and reset flow on `/forgot-password`;
|
||||
- normal-browser Enterprise WeChat entry as secondary CTA;
|
||||
- normal-browser Enterprise WeChat boundary notice or secondary entry;
|
||||
- WeCom WebView Enterprise WeChat entry as primary CTA with password fallback.
|
||||
- UI design rules check and Playwright screenshot evidence when the auth layout
|
||||
changes visibly.
|
||||
|
||||
在新工单中引用
屏蔽一个用户