JianFeeeee
4d226be056
test(harmony): 「用系统方案」的地基 —— 系统资源名与 BlurStyle 取值离线可校验(判据先于替换)
jianf 追加要求「鸿蒙要求用系统方案」(§二·五)。难点是**没有设备**:
`$r('sys.color.写错了')` 编译期不报、只有真机运行到那一行才炸 —— 这块会变成谁都验不了的区域。
SDK 里其实带着答案:`sdk/default/openharmony/toolchains/id_defined.json` 列了全部系统资源名
及其类型(本机 API 26:7826 条,color 1059 条);BlurStyle 取值在 `component/common.d.ts` 的
`declare enum BlurStyle` 里。两边都能离线查,所以"名字写对没有"可以变成构建期判据。
新增 `test/harmony-system-api.test.mjs`(4 条,已接进 run-all):
1. SDK 名表/组件声明找不到时**判红并给出替代做法**(会静默跳过的判据等于没有这条判据 ——
本仓库已栽过四次同类问题);
2. 源码里每个 `$r('sys.<type>.<name>')` 必须存在且**类型相符**;
3. 每个 `BlurStyle.<MEMBER>` 必须在 SDK enum 里;
4. 替换计划要用的那批系统色**先核过再写代码**,并且钉住一条边界:名表里没有
`brand`/`confirm`/`success` —— 权限三档、预算三档这些**业务语义色没有系统对应物**,
继续用自定义令牌,不许"为了系统化"把 plan 档画成 warning 色(那是丢语义换形式)。
变异验证:拼错色名 `ohos_id_color_list_cad_bg` → 报「查无此名」并指出文件;
写错 `BlurStyle.COMPONENT_不存在` → 报出可用取值。顺带修掉解析精度问题:
早先的宽松正则把文档里的 `T`、`R` 也当成了枚举成员,现在精确到 `,`/`=` 分隔符。
验证:`npm test` 退出码 0(10 个判据文件全绿 + vitest 258/258)。
2026-09-14 13:56:43 +08:00
..
2026-09-14 13:53:34 +08:00
2026-09-14 08:43:54 +08:00
2026-09-07 07:28:39 +08:00
2026-09-14 13:56:43 +08:00
2026-09-07 17:00:06 +08:00
2026-09-13 06:16:59 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-13 14:25:44 +08:00