import test from 'node:test' import assert from 'node:assert/strict' import { readFile, access } from 'node:fs/promises' import { alarmCurveChoices, auditStatusTone, monitorStatusTone, groupAlarmDevices, findAlarmMenu, seriesPoints, rangeParams } from '../src/views/subSystem/alarm/alarmOperationsModel.js' test('detail status colors distinguish monitoring and audit states without treating missing values as zero',()=>{ assert.equal(monitorStatusTone(0),'danger') assert.equal(monitorStatusTone('1'),'success') assert.equal(auditStatusTone(0),'warning') assert.equal(auditStatusTone('1'),'primary') assert.equal(auditStatusTone(2),'info') for(const status of [null,undefined,'',9]){ assert.equal(monitorStatusTone(status),'info') assert.equal(auditStatusTone(status),'info') } }) test('detail uses lightweight inline state labels and small tags, without old gray status cards',async()=>{ const source=await readFile('src/views/subSystem/alarm/AlarmDetail.vue','utf8') for(const label of ['监测状态','审核结果','处置状态']) assert.ok(source.includes('
'+label+'
')) assert.equal((source.match(/size="small" effect="light"/g)||[]).length,3) assert.ok(source.includes('font-weight: 400')) assert.ok(source.includes('orderStatusType(alarm.orderStatus)')) assert.ok(!source.includes('