38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
import test from 'brittle'
|
|
import {
|
|
shouldNotify,
|
|
meetsMinSeverity,
|
|
isWebhookEnabled,
|
|
} from '../server/services/notify.js'
|
|
|
|
test('meetsMinSeverity', (t) => {
|
|
const prev = process.env.PEARDATA_NOTIFY_MIN_SEVERITY
|
|
delete process.env.PEARDATA_NOTIFY_MIN_SEVERITY
|
|
t.ok(meetsMinSeverity('warning'))
|
|
t.ok(meetsMinSeverity('critical'))
|
|
process.env.PEARDATA_NOTIFY_MIN_SEVERITY = 'critical'
|
|
t.absent(meetsMinSeverity('warning'))
|
|
t.ok(meetsMinSeverity('critical'))
|
|
if (prev == null) delete process.env.PEARDATA_NOTIFY_MIN_SEVERITY
|
|
else process.env.PEARDATA_NOTIFY_MIN_SEVERITY = prev
|
|
})
|
|
|
|
test('shouldNotify gates on webhook + clears', (t) => {
|
|
const prevUrl = process.env.PEARDATA_WEBHOOK_URL
|
|
const prevClears = process.env.PEARDATA_NOTIFY_CLEARS
|
|
delete process.env.PEARDATA_WEBHOOK_URL
|
|
t.absent(isWebhookEnabled())
|
|
t.absent(shouldNotify({ severity: 'critical', cleared: false }))
|
|
|
|
process.env.PEARDATA_WEBHOOK_URL = 'http://127.0.0.1:9/hook'
|
|
t.ok(shouldNotify({ severity: 'warning', cleared: false }))
|
|
t.absent(shouldNotify({ severity: 'warning', cleared: true }))
|
|
process.env.PEARDATA_NOTIFY_CLEARS = '1'
|
|
t.ok(shouldNotify({ severity: 'warning', cleared: true }))
|
|
|
|
if (prevUrl == null) delete process.env.PEARDATA_WEBHOOK_URL
|
|
else process.env.PEARDATA_WEBHOOK_URL = prevUrl
|
|
if (prevClears == null) delete process.env.PEARDATA_NOTIFY_CLEARS
|
|
else process.env.PEARDATA_NOTIFY_CLEARS = prevClears
|
|
})
|