thresholdAlarmNoticeTracker.test.mjs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import assert from 'node:assert/strict'
  2. import { test } from 'node:test'
  3. import { createThresholdAlarmNoticeTracker } from '../src/utils/thresholdAlarmNoticeTracker.ts'
  4. test('关闭当前活动告警提示后,本轮持续超限不再重复告警', () => {
  5. const tracker = createThresholdAlarmNoticeTracker()
  6. tracker.record('oil-speed', 'notice-1', 'min-1|max-1')
  7. assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
  8. assert.equal(tracker.close('oil-speed', 'notice-1'), true)
  9. assert.equal(tracker.isAcknowledged('oil-speed', 'min-1|max-1'), true)
  10. assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
  11. assert.equal(tracker.shouldCreate('oil-speed', 'min-2|max-2'), true)
  12. })
  13. test('关闭历史提示不会让当前活动告警重复提示', () => {
  14. const tracker = createThresholdAlarmNoticeTracker()
  15. tracker.record('oil-speed', 'notice-current', 'min-1|max-1')
  16. assert.equal(tracker.close('oil-speed', 'notice-history'), false)
  17. assert.equal(tracker.isAcknowledged('oil-speed', 'min-1|max-1'), false)
  18. assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
  19. })
  20. test('检查通过后允许下一轮告警创建新提示', () => {
  21. const tracker = createThresholdAlarmNoticeTracker()
  22. tracker.record('oil-speed', 'notice-1', 'min-1|max-1')
  23. tracker.close('oil-speed', 'notice-1')
  24. assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), false)
  25. tracker.pass('oil-speed')
  26. assert.equal(tracker.isAcknowledged('oil-speed', 'min-1|max-1'), false)
  27. assert.equal(tracker.shouldCreate('oil-speed', 'min-1|max-1'), true)
  28. })
  29. test('不同指标的当前提示状态互不影响', () => {
  30. const tracker = createThresholdAlarmNoticeTracker()
  31. tracker.record('oil-speed', 'oil-notice', 'oil-1')
  32. tracker.record('well-pressure', 'pressure-notice', 'pressure-1')
  33. tracker.close('oil-speed', 'oil-notice')
  34. assert.equal(tracker.isAcknowledged('oil-speed', 'oil-1'), true)
  35. assert.equal(tracker.shouldCreate('oil-speed', 'oil-1'), false)
  36. assert.equal(tracker.shouldCreate('well-pressure', 'pressure-1'), false)
  37. })
  38. test('同一指标记录新提示时返回旧提示键并替换当前状态', () => {
  39. const tracker = createThresholdAlarmNoticeTracker()
  40. assert.equal(tracker.record('oil-speed', 'notice-1', 'oil-1'), undefined)
  41. assert.equal(tracker.record('oil-speed', 'notice-2', 'oil-2'), 'notice-1')
  42. assert.equal(tracker.close('oil-speed', 'notice-1'), false)
  43. assert.equal(tracker.close('oil-speed', 'notice-2'), true)
  44. })