| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import assert from 'node:assert/strict'
- import { test } from 'node:test'
- import { createThresholdAlarmNoticeTracker } from '../src/utils/thresholdAlarmNoticeTracker.ts'
- test('关闭当前活动告警提示后,本轮持续超限不再重复告警', () => {
- const tracker = createThresholdAlarmNoticeTracker()
- tracker.record('oil-speed', 'notice-1', 'min-1|max-1')
- assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
- assert.equal(tracker.close('oil-speed', 'notice-1'), true)
- assert.equal(tracker.isAcknowledged('oil-speed', 'min-1|max-1'), true)
- assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
- assert.equal(tracker.shouldCreate('oil-speed', 'min-2|max-2'), true)
- })
- test('关闭历史提示不会让当前活动告警重复提示', () => {
- const tracker = createThresholdAlarmNoticeTracker()
- tracker.record('oil-speed', 'notice-current', 'min-1|max-1')
- assert.equal(tracker.close('oil-speed', 'notice-history'), false)
- assert.equal(tracker.isAcknowledged('oil-speed', 'min-1|max-1'), false)
- assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
- })
- test('检查通过后允许下一轮告警创建新提示', () => {
- const tracker = createThresholdAlarmNoticeTracker()
- tracker.record('oil-speed', 'notice-1', 'min-1|max-1')
- tracker.close('oil-speed', 'notice-1')
- assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
- tracker.pass('oil-speed')
- assert.equal(tracker.isAcknowledged('oil-speed', 'min-1|max-1'), false)
- assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), true)
- })
- test('不同指标的当前提示状态互不影响', () => {
- const tracker = createThresholdAlarmNoticeTracker()
- tracker.record('oil-speed', 'oil-notice', 'oil-1')
- tracker.record('well-pressure', 'pressure-notice', 'pressure-1')
- tracker.close('oil-speed', 'oil-notice')
- assert.equal(tracker.isAcknowledged('oil-speed', 'oil-1'), true)
- assert.equal(tracker.shouldCreate('oil-speed', 'oil-1'), false)
- assert.equal(tracker.shouldCreate('well-pressure', 'pressure-1'), false)
- })
- test('同一指标记录新提示时返回旧提示键并替换当前状态', () => {
- const tracker = createThresholdAlarmNoticeTracker()
- assert.equal(tracker.record('oil-speed', 'notice-1', 'oil-1'), undefined)
- assert.equal(tracker.record('oil-speed', 'notice-2', 'oil-2'), 'notice-1')
- assert.equal(tracker.close('oil-speed', 'notice-1'), false)
- assert.equal(tracker.close('oil-speed', 'notice-2'), true)
- })
|