test(cross-client): 预算条三个档位的令牌也和 WebUI 对齐 + 记录模拟器权限门

## 判据

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`。此前所有阶段只能按"逻辑有可执行判据 + 接线有判据 + 观感未验"验收。
This commit is contained in:
2026-09-14 13:38:35 +08:00
parent 83cb7528fb
commit e0c68d8bb2
2 changed files with 44 additions and 0 deletions

View File

@ -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', () => {

View File

@ -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 之后所有阶段的"点击级判据"落地。)