From e0c68d8bb21cd243663803b1fe41ea19f0c7f7e7 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 14 Sep 2026 13:38:35 +0800 Subject: [PATCH] =?UTF-8?q?test(cross-client):=20=E9=A2=84=E7=AE=97?= =?UTF-8?q?=E6=9D=A1=E4=B8=89=E4=B8=AA=E6=A1=A3=E4=BD=8D=E7=9A=84=E4=BB=A4?= =?UTF-8?q?=E7=89=8C=E4=B9=9F=E5=92=8C=20WebUI=20=E5=AF=B9=E9=BD=90=20+=20?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=A8=A1=E6=8B=9F=E5=99=A8=E6=9D=83=E9=99=90?= =?UTF-8?q?=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 判据 P2a 新加的 6 个预算条令牌(`chipNeutral*` / `chipSpent*` / `chipWarn*`)此前只有鸿蒙侧 自己在用,没有任何判据钉住它们与 WebUI `BudgetChip` 的 gray-100/gray-500、 red-100/red-700、orange-100/orange-700 是**同一批值** —— 于是"鸿蒙那边自己挑了个接近的红" 没人会发现。补进 `cross-client-theme.test.mjs`(8 → 8 条,第 7 条扩了 6 个断言), 并加了反向对照(差一个色阶必须判红,实测判红)。 注意 `--c-gray-100` 等在 `.dark` 段有第二处定义,`cssVar()` 取第一处(`:root` 浅色一套), 与 `Theme.ets` 的浅色令牌对应。 ## 文档 `docs/HARMONY-ALIGN-PLAN.md` §7.6:把"鸿蒙视觉/点击未验"查到根上 —— DevEco CLI 说明本机 **有**可启动的模拟器(起来后 `devecocli ui layout/click/screenshot` 能做点击级验证), 但 `harmony-emu start` 要写 `/run`、`/root/.Huawei`(工作区之外),按规矩升级重试一次后 被拒:**「权限询问无法送达:该任务链上没有人类用户」**。 即:鸿蒙的点击级验证不是"还没做",是"当前做不到"——需要人在命令行跑一次 `harmony-emu start`。此前所有阶段只能按"逻辑有可执行判据 + 接线有判据 + 观感未验"验收。 --- .../electron/test/cross-client-theme.test.mjs | 25 +++++++++++++++++++ docs/HARMONY-ALIGN-PLAN.md | 19 ++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/client/electron/test/cross-client-theme.test.mjs b/client/electron/test/cross-client-theme.test.mjs index 2b76ea9..f0ada7e 100644 --- a/client/electron/test/cross-client-theme.test.mjs +++ b/client/electron/test/cross-client-theme.test.mjs @@ -114,6 +114,31 @@ test('权限档位徽标两边同一套色(plan=蓝 / workspace=绿 / full=琥 assert.equal(token('approveFg'), cssVar('c-green-700', web), 'workspace 字色应与 green-700 一致'); assert.equal(token('warnBg'), cssVar('c-amber-50', web), 'full 底色应与 amber-50 一致'); assert.equal(token('warnFg'), cssVar('c-amber-700', web), 'full 字色应与 amber-700 一致'); + + /* + * 往返预算条的三个档位(P2a 新加)。 + * + * WebUI 的 `BudgetChip` 用的是 gray-100/gray-500(普通)、red-100/red-700(用尽)、 + * orange-100/orange-700(将尽);鸿蒙的卡片视图要显示同一条预算, + * 就得取**同一批值** —— 而且这批值只在这条判据里和 WebUI 对齐, + * 否则"鸿蒙那边自己挑了个接近的红"没人会发现。 + * + * ⚠️ 注意:index.css 里 `--c-gray-100` 等变量在 `.dark` 段里还有第二处定义, + * 上面的 cssVar 取的是**第一处**(`:root`,浅色主题)—— 与 `Theme.ets` 是浅色一套对应。 + */ + assert.equal(token('chipNeutralBg'), cssVar('c-gray-100', web), '预算普通档底色应与 gray-100 一致'); + assert.equal(token('chipNeutralFg'), cssVar('c-gray-500', web), '预算普通档字色应与 gray-500 一致'); + assert.equal(token('chipSpentBg'), cssVar('c-red-100', web), '预算用尽底色应与 red-100 一致'); + assert.equal(token('chipSpentFg'), cssVar('c-red-700', web), '预算用尽字色应与 red-700 一致'); + assert.equal(token('chipWarnBg'), cssVar('c-orange-100', web), '预算将尽底色应与 orange-100 一致'); + assert.equal(token('chipWarnFg'), cssVar('c-orange-700', web), '预算将尽字色应与 orange-700 一致'); + // 反向对照:判据要真能抓到"自己挑了个接近的颜色" + const off = harmony.replace("chipSpentBg: string = '#FEE2E2'", "chipSpentBg: string = '#FEE3E3'"); + assert.notEqual( + hex(off.match(/chipSpentBg: string = '(#[0-9A-Fa-f]{6})'/)[1]), + cssVar('c-red-100', web), + '自检:差一个色阶判据却还是绿的' + ); }); test('鸿蒙的遮罩是「色 + 透明度」两段式(照 WebUI 的 --bg-scrim + --bg-dim)', () => { diff --git a/docs/HARMONY-ALIGN-PLAN.md b/docs/HARMONY-ALIGN-PLAN.md index 45fbde5..aedef62 100644 --- a/docs/HARMONY-ALIGN-PLAN.md +++ b/docs/HARMONY-ALIGN-PLAN.md @@ -314,3 +314,22 @@ WebUI 侧完全不读这个字段(`mailStore` 里没有 `total`),所以这 - **视觉与点击仍未验**(无设备 / 模拟器起不来):折叠展开的手感、卡片间距、 组头命中区是否够大,这些**没有**任何自动判据能代替人眼 —— 交付时按"结构/逻辑已验证、 观感未验"写。下一轮:P2b 通信页签(收件箱/发件箱/授权 + 徽标)。 + +### 7.6 模拟器为什么仍然起不来:权限门是"无人可批准" + +7.5 的"无设备"这次查到根上了。DevEco CLI 的说明(`deveco-cli` skill)确认本机 +**有**一个按需启动的模拟器实例 `HarmonyPhone`(KVM,`harmony-emu start` 即可, +起来后 `devecocli ui layout / click / screenshot` 能做**真正的点击级验证**)。 +但 `harmony-emu start` 要把 PID/日志写到 `/run` 与 `/root/.Huawei`(工作区之外), +在 workspace-write 沙箱下被拒;按规矩用 `sandbox_permissions` 升级重试一次,得到的是: + + 无法执行 bash:权限询问无法送达:该任务链上没有人类用户 + +也就是说:**鸿蒙的点击级验证在这条链上不是"还没做",而是"当前做不到"** —— +需要人类在命令行里跑一次 `harmony-emu start`,之后 `devecocli ui` 就能自动点。 +在那之前,鸿蒙侧任何界面改动的验收口径只能是 +「逻辑有可执行判据 + 页面接线有判据 + 观感未验」,**不能**写"已完成"。 + +(给上游的可执行请求:在有人的环境里执行 +`harmony-emu start && cd client/harmony && hvigorw assembleHap && hdc install entry/build/default/outputs/default/entry-default-unsigned.hap`, +即可让 P2a 之后所有阶段的"点击级判据"落地。)