t102-topbar-labels.mjs 1.6 KB

12345678910111213141516171819202122232425262728
  1. /**
  2. * 票 102 静态闸门(一):顶栏三个诊断读数下屏,且不留半截改动。
  3. *
  4. * 接缝:外壳单文件源码契约 —— 模板节点 / import / 死状态 / CSS 类名必须同时消失。
  5. * 只删模板会留下死样式与死 import,只删样式会留下「有节点没画法」的裸标签。
  6. * 用法:node verify/t102-topbar-labels.mjs [源码路径](给路径可复核历史版本)。
  7. */
  8. import { readShell, check, checkAbsent, assertModeNavIntact, report } from './t102-shell-source.mjs'
  9. const source = readShell(process.argv[2])
  10. // ---- 三个读数:模板、样式、数据来源一起下屏 ----
  11. checkAbsent(source, '只读视图', '「只读视图」必须下屏')
  12. checkAbsent(source, '配置就绪', '「配置就绪 · 数据源」必须下屏')
  13. checkAbsent(source, 'cockpit-shell__config', '配置读数容器(模板/样式)不得残留')
  14. checkAbsent(source, 'configStatusView', '配置读数展示层不得残留')
  15. checkAbsent(source, 'StatusTag', 'StatusTag 只服务配置读数,必须一并移除')
  16. checkAbsent(source, 'cockpit-shell__meta', '「当前模式」读数不得残留')
  17. // ---- 配置判定本身仍在用,不能顺手删 ----
  18. check(source.includes('configState.value'), '配置判定仍被地图配置/降级说明使用,不能删')
  19. // 反方向也要守:读数的「载入前不闪标签」闸门随读数一起变成死状态。
  20. checkAbsent(source, 'configLoaded', '拉取态闸门随读数下屏,不得留下无人读的状态')
  21. // ---- 一级模式导航语义不动 ----
  22. assertModeNavIntact(source)
  23. report('t102-topbar-labels')