28 lines
980 B
Go
28 lines
980 B
Go
package main
|
|
|
|
import "testing"
|
|
|
|
func TestEvaluateAlerts(t *testing.T) {
|
|
metrics := dashboardMetrics{
|
|
Memory: MemoryMetrics{UsagePercent: 91},
|
|
Storage: StorageMetrics{UsagePercent: 96},
|
|
Backups: BackupMetrics{}, Guests: GuestsMetrics{},
|
|
}
|
|
alerts := evaluateAlerts(metrics, defaultThresholds())
|
|
if len(alerts) != 2 {
|
|
t.Fatalf("ожидалось два уведомления, получено: %+v", alerts)
|
|
}
|
|
if alerts[0].Severity != "critical" || alerts[1].Severity != "warning" {
|
|
t.Fatalf("неверная сортировка уведомлений: %+v", alerts)
|
|
}
|
|
}
|
|
|
|
func TestSlowCollectionDoesNotCreateAlert(t *testing.T) {
|
|
metrics := dashboardMetrics{Monitor: MonitorHealth{SlowCollector: true, CollectionDurationMs: 12308}}
|
|
for _, alert := range evaluateAlerts(metrics, defaultThresholds()) {
|
|
if alert.ID == "monitor-slow" {
|
|
t.Fatalf("медленный цикл не должен создавать уведомление: %+v", alert)
|
|
}
|
|
}
|
|
}
|