test(预设): 补行为判据 —— "清单里有、渲染器没有"必须红(值判据只挡住一半)
pi 2026-09-14 指出:我那条"两端预设清单 id/顺序逐项相等"只挡得住**一半** —— 它挡"清单漏一档",挡不住"清单有、渲染器没有"(第 7 档两边都加、忘了给 `layersFor` 加分支 ⇒ 值判据全绿,用户看到的却是 aurora)。症状与"信息对等缺口" 一模一样,只是路径换了。核对:他说得对,`layersFor` 的兜底就是 `aurora`, 所以丢分支是**静默**的。 新增 `test/harmony-presets.test.mjs`(4 条,`--experimental-strip-types` 直接执行 纯逻辑 `model/Wallpaper.ts` —— 与 `harmony-logic` 同一先例,**能真跑**): 1. 六档 × 两主题:不抛异常、非空、每层 kind/色标/网格字段有效; 2. ★ **清单里有、渲染器没有 → 红**:手法是拿一个不存在的 id 调一次当作"兜底长相", 任何一档丢了分支就会与兜底逐字节相同 ⇒ 红。**并写明已知边界**:`aurora` 自己 就是兜底档,它"丢分支"在行为上不可观测(由值判据 + 第 3 条兜住); 3. 六档两两不同(复制分支没改参数 → 红); 4. 深色档必须与浅色档不同("深色没换色" → 红)。 **不需要设备 ⇒ 按 pi 的提醒不登记进 `static` 欠账**(那会虚增余额)。 两条变异都验过:删 `mesh` 分支 → 行为判据报"画出来的和兜底档一模一样"; 清单加第 7 档不加分支 → **值判据与行为判据同时红**(两条一起才闭合)。 安装相位 14/14 绿。 另按 pi 要求处理两处登记: · §7.12 那行"px ↔ 档位"改成**核实后的真相**:`bg_blur` 在鸿蒙侧只有搬运没有消费 (`Appearance.ts` clamp 存下、`AppearanceStore` 同步,**没有任何页面读它**), 所以不存在映射表可钉 —— 钉一张不存在的表是假判据;并写明"若将来开始消费它, 那时必须补映射判据",作为"人工约定、当前无判据"的登记处。 · 预设 id/顺序那条**标清钉的是产品要求**(顺序=用户看到的选项次序),理由写进判据注释。
This commit is contained in:
@ -64,6 +64,9 @@ const SUITE = [
|
||||
['test/theme.test.mjs', [], 30],
|
||||
['test/background.test.mjs', [], 42],
|
||||
['test/cross-client-theme.test.mjs', [], 15],
|
||||
// 预设的**行为**判据:每一档都真的画得出来(能真跑,不需要设备 ⇒ 不进 static 欠账)。
|
||||
// 与 appearance-defaults 那条「清单 id/顺序相等」配对:值判据管清单,行为判据管渲染器。
|
||||
['test/harmony-presets.test.mjs', ['--experimental-strip-types', '--no-warnings'], 4],
|
||||
['test/harmony-logic.test.mjs', ['--experimental-strip-types', '--no-warnings'], 28],
|
||||
['test/harmony-system-api.test.mjs', [], 5],
|
||||
// P4 外观同步:跑 model/Appearance.ts(纯逻辑),所以也要 strip-types
|
||||
|
||||
Reference in New Issue
Block a user