t10-point-detail.log 5.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. PASS A1-empty-selection-is-none — {"level":"none","pointCode":"","deviceCode":""}
  2. PASS A2-open-point-enters-first-level — {"level":"point","pointCode":"MP-002","deviceCode":""}
  3. PASS A3-select-device-enters-second-level — 点位编码保留:MP-002
  4. PASS A4-switching-point-clears-device — {"level":"point","pointCode":"MP-003","deviceCode":""}
  5. PASS A5-back-returns-to-point-without-device — {"level":"point","pointCode":"MP-002","deviceCode":""}
  6. PASS A6-unassociated-equipment-goes-straight-to-device — {"level":"equipment","pointCode":"","deviceCode":"EQ-100"}
  7. PASS A7-point-marker-maps-to-point-level — 点监测点 → 第一级
  8. PASS A8-unknown-object-opens-nothing — 认不出的对象与没有编码的对象都不打开卡片(不猜)
  9. PASS A9-close-is-empty — 关闭回空选择;空编码不改变选择
  10. PASS A10-same-point-target — 同一目标(含已选设备那一级)才判「不用重复取数」
  11. PASS B1-summary-has-five-fields — name, code, status, reason, deviceCount
  12. PASS B2-summary-values — {"name":"燃气调压站监测点","code":"MP-002","status":"报警","count":2}
  13. PASS B3-summary-reason — 原因:压力超高
  14. PASS B4-summary-status-has-shape-and-label — lv1/triangle/报警
  15. PASS B5-reason-dedupes-and-keeps-order — 压力超高;通信中断
  16. PASS B6-no-reason-is-empty-not-normal — 后端没给原因时是空串(界面显示「暂无原因」),不是「正常」
  17. PASS B7-unknown-status-not-guessed — 认不出的点位状态 → 状态未发布
  18. PASS B8-backend-label-wins — 后端给了 statusLabel 就用后端的词,前端不另造业务词汇
  19. PASS B9-missing-fields-placeholder — 缺字段显示 —,不留空白也不编造
  20. PASS B10-count-prefers-backend-statistics — 后端给 7 台、只回了 2 张卡片时,摘要仍说 7(统计是权威值)
  21. PASS B11-count-falls-back-to-cards-when-statistics-missing — 统计缺失时按已返回的 2 张卡片报,不显示「0 台」
  22. PASS B12-count-zero-is-real-zero — 后端确实说 0 台时就是 0(真 0 不是缺失)
  23. PASS B13-device-card-order-is-backend-order — EQ-B,EQ-A,EQ-C / EQ-C,EQ-B,EQ-A
  24. PASS B14-card-view-fields — 卡片带编码/名称/类型/状态/原因
  25. PASS B15-device-card-of — 第二级的表头按设备编码取卡片,取不到回 null
  26. PASS C1-open-point-loads-first-level — {"level":"point","state":"success","code":"MP-COUNT"}
  27. PASS C2-fetch-happened-once — 请求 1 次
  28. PASS C3-same-point-does-not-refetch — 再次打开后请求数仍为 1
  29. PASS C4-select-device-enters-level-and-loads-by-code — {"level":"equipment","aggregateCode":"EQ-001","pointRequests":1}
  30. PASS C5-point-detail-kept-for-device-header — 第二级的表头仍读第一级已加载的数据(不必再请求)
  31. PASS C6-back-keeps-loaded-section — 返回后请求数仍为 1
  32. PASS C7-race-latest-wins — B 落地后 section.code=MP-B(A 迟到被丢弃)
  33. PASS C8-close-clears-selection — {"level":"none","pointCode":"","deviceCode":""}
  34. PASS C9-failure-keeps-selection-and-reports — {"level":"point","state":"failed"}
  35. PASS C11-failed-point-can-be-retried — 第一次 failed → 再点一次(第 2 次请求)后 success
  36. PASS C10-unassociated-device-needs-no-point-request — {"level":"equipment","pointCode":"","deviceCode":"EQ-100"}
  37. PASS D1-map-objects-untouched-by-detail-flow — 2 个地图对象、2 个标记,详情流程前后一致
  38. PASS D2-associated-devices-are-not-markers — 详情里的设备 EQ-001, EQ-002 都不在标记计划里(monitoring-point|MP-001 / monitoring-point|MP-002)
  39. PASS D3-guard-has-teeth — 把设备当地图对象喂进去会多出 2 个标记(因此「不喂」才是有意义的约束)
  40. PASS E1-click-gesture-threshold — 阈值 4px:拖拽不点选
  41. PASS E2-gesture-safe-on-missing-input
  42. PASS E3-pick-input-only-observes — 只观察、只认左键:相机拖拽手感不受影响
  43. PASS E4-pick-input-has-detach — 返回 detach:离开 /cockpit 时摘干净
  44. PASS E4b-real-click-fires-pick — 点一下 → onPick({"x":101,"y":100})
  45. PASS E4c-drag-right-button-cancel-do-not-pick — 拖拽/右键/取消之后仍只有 1 次点选
  46. PASS E4d-detach-removes-listeners — 摘掉监听后不再触发点选
  47. PASS E5-engine-pick-only-marker-identity — 只认带 pointCode 的实体,且回的是身份(kind/code/status),不漏 Cesium 实体
  48. PASS E6-pick-uses-canvas-coordinates — 事件给窗口坐标、scene.pick 吃画布坐标,先减去画布原点
  49. PASS E7-pick-lifecycle-symmetric — 引擎就绪时挂、离开时摘;订阅接口由组件使用
  50. PASS E8-pick-failure-opens-nothing — 拾不到标记(点空白/地形/影像)时不打开任何详情
  51. PASS F1-card-does-not-build-api-paths — 接口路径只在 services/detailApi.js,组件不自己拼
  52. PASS F2-card-has-no-backend-field-names — 组件只读领域字段(domain/detailFlow.js 的视图对象)
  53. PASS F3-no-sorting-of-device-cards — 设备卡片不排序(验收第 3 条:顺序由后端返回顺序决定)
  54. PASS F4-detail-path-never-touches-markers — 详情流程与地图标记层零耦合(关联设备不可能被重复画上去)
  55. PASS F5-marker-source-is-map-summary-only — mapLayerPlan 是 planPointMarkers 的唯一调用点,MapCanvas 只把计划交给 syncPointMarkersForPlan
  56. PASS F6-card-mounts-detail-store — 组件的动作全部交回 store(组件里没有自己的状态机副本)
  57. PASS F7-shell-positions-card-without-map-rebuild — 浮层是 main 的兄弟并由外壳定位:地图节点结构不变(票 02 的常驻语义;票 46 起条件含选择态暂停)
  58. T10 逻辑检查:57/57 项通过。