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