| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import assert from 'node:assert/strict'
- import { eventStatusTone, eventSummaryText, eventRowView } from '../src/modules/cockpit/domain/eventList.js'
- import { normalizeEntityDetail } from '../src/modules/cockpit/domain/entityDetail.js'
- // —— 处理状态用颜色区分(维护者 2026-10-29) ——
- assert.equal(eventStatusTone('PENDING'), 'lv2')
- assert.equal(eventStatusTone('ACTIVE'), 'lv2')
- assert.equal(eventStatusTone('PROCESSING'), 'lv3')
- assert.equal(eventStatusTone('HANDLING'), 'lv3')
- assert.equal(eventStatusTone('RESOLVED'), 'lv4')
- assert.equal(eventStatusTone('CLEARED'), 'lv4')
- assert.equal(eventStatusTone('CANCELLED'), 'neutral')
- assert.equal(eventStatusTone(''), 'neutral')
- // 认不出的状态不许猜成某个真实状态色
- assert.equal(eventStatusTone('SOMETHING_NEW'), 'neutral')
- // —— 卡片摘要:让用户直观看到"发生了什么" ——
- assert.equal(eventSummaryText({ type: '电导率监测', thresholdMinValue: 100, thresholdMaxValue: 5000, unit: 'μS/cm' }, '454 μS/cm'),
- '电导率监测 · 实际值 454 μS/cm · 阈值 100 ~ 5000 μS/cm')
- // 缺哪段少哪段,不编造
- assert.equal(eventSummaryText({ type: '水位预警' }, '—'), '水位预警')
- assert.equal(eventSummaryText({}, '—'), '')
- assert.equal(eventSummaryText({ type: '压力', thresholdMaxValue: 5, unit: 'MPa' }, '—'), '压力 · 阈值 ≤ 5 MPa')
- // —— 列表行同时带等级与状态两套色键 ——
- const row = eventRowView({ code: 'YJ1', name: '电导率预警', level: 2, status: 'PENDING', type: '电导率监测', value: 454, unit: 'μS/cm', thresholdMaxValue: 5000, deviceName: '测试设备' })
- assert.equal(row.level.label, '2级')
- assert.equal(row.level.tone, 'lv2')
- assert.equal(row.statusTone, 'lv2')
- assert.match(row.summaryText, /电导率监测/)
- assert.match(row.summaryText, /454 μS\/cm/)
- // —— 详情抬头也显示等级(与卡片同表同色) ——
- const detail = normalizeEntityDetail({ kind: 'event', id: 'YJ1', family: 'WARNING' }, { warningNo: 'YJ1', level: 2, status: 'PENDING' })
- assert.equal(detail.levelLabel, '2级')
- assert.equal(detail.levelTone, 'lv2')
- // —— 历史事件与当前预警/报警使用同一套卡片字段(同步设计) ——
- const historyDomain = normalizeEntityDetail({ kind: 'event', id: 'H1', family: 'ALARM' }, { alarmNo: 'H1', level: 1, status: 'RESOLVED', type: 'COD监测' })
- assert.equal(historyDomain.levelLabel, '1级')
- assert.equal(historyDomain.statusText.length > 0, true)
- console.log('t65-event-card-design: 22/22')
|