mirror of
https://github.com/prymitive/karma
synced 2026-05-05 03:16:51 +00:00
Update models package tests
This commit is contained in:
54
models/alert_test.go
Normal file
54
models/alert_test.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package models_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/cloudflare/unsee/models"
|
||||
)
|
||||
|
||||
type alertStateTest struct {
|
||||
alert models.Alert
|
||||
isSilenced bool
|
||||
isInhibited bool
|
||||
isActive bool
|
||||
}
|
||||
|
||||
var alertStateTests = []alertStateTest{
|
||||
alertStateTest{
|
||||
alert: models.Alert{
|
||||
State: models.AlertStateActive,
|
||||
},
|
||||
isActive: true,
|
||||
},
|
||||
alertStateTest{
|
||||
alert: models.Alert{
|
||||
State: models.AlertStateSuppressed,
|
||||
InhibitedBy: []string{"1234"},
|
||||
},
|
||||
isInhibited: true,
|
||||
},
|
||||
alertStateTest{
|
||||
alert: models.Alert{
|
||||
State: models.AlertStateSuppressed,
|
||||
SilencedBy: []string{"1234"},
|
||||
},
|
||||
isSilenced: true,
|
||||
},
|
||||
}
|
||||
|
||||
func TestAlertState(t *testing.T) {
|
||||
for _, testCase := range alertStateTests {
|
||||
if testCase.alert.IsActive() != testCase.isActive {
|
||||
t.Errorf("alert.IsActive() returned %t while %t was expected for alert %v",
|
||||
testCase.alert.IsActive(), testCase.isActive, testCase.alert)
|
||||
}
|
||||
if testCase.alert.IsInhibited() != testCase.isInhibited {
|
||||
t.Errorf("alert.IsInhibited() returned %t while %t was expected for alert %v",
|
||||
testCase.alert.IsInhibited(), testCase.isInhibited, testCase.alert)
|
||||
}
|
||||
if testCase.alert.IsSilenced() != testCase.isSilenced {
|
||||
t.Errorf("alert.IsSilenced() returned %t while %t was expected for alert %v",
|
||||
testCase.alert.IsSilenced(), testCase.isSilenced, testCase.alert)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -76,3 +76,65 @@ func TestUnseeAlertListSort(t *testing.T) {
|
||||
t.Errorf("%d sort failures for %d checks", failures, iterations*len(al))
|
||||
}
|
||||
}
|
||||
|
||||
type agFPTest struct {
|
||||
ag models.AlertGroup
|
||||
fingerprint string
|
||||
}
|
||||
|
||||
var agFPTests = []agFPTest{
|
||||
// empty group fingerprint
|
||||
agFPTest{
|
||||
ag: models.AlertGroup{},
|
||||
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
},
|
||||
// different Receiver shouldn't change content fingerprint
|
||||
agFPTest{
|
||||
ag: models.AlertGroup{
|
||||
Receiver: "default",
|
||||
},
|
||||
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
},
|
||||
// different StateCount shouldn't change content fingerprint
|
||||
agFPTest{
|
||||
ag: models.AlertGroup{
|
||||
Receiver: "default",
|
||||
StateCount: map[string]int{"default": 0},
|
||||
},
|
||||
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
},
|
||||
// different Labels shouldn't change content fingerprint
|
||||
agFPTest{
|
||||
ag: models.AlertGroup{
|
||||
Receiver: "default",
|
||||
Labels: map[string]string{"foo": "bar"},
|
||||
StateCount: map[string]int{"default": 0},
|
||||
},
|
||||
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
},
|
||||
// different set of alerts should change content fingerprint
|
||||
agFPTest{
|
||||
ag: models.AlertGroup{
|
||||
Receiver: "default",
|
||||
Labels: map[string]string{"foo": "bar"},
|
||||
Alerts: models.AlertList{
|
||||
models.Alert{
|
||||
Labels: map[string]string{"foo1": "bar"},
|
||||
State: models.AlertStateActive,
|
||||
Fingerprint: "xxx",
|
||||
},
|
||||
},
|
||||
StateCount: map[string]int{"default": 0},
|
||||
},
|
||||
fingerprint: "b60d121b438a380c343d5ec3c2037564b82ffef3",
|
||||
},
|
||||
}
|
||||
|
||||
func TestAlertGroupContentFingerprint(t *testing.T) {
|
||||
for _, testCase := range agFPTests {
|
||||
if testCase.ag.ContentFingerprint() != testCase.fingerprint {
|
||||
t.Errorf("Invalid AlertGroup ContentFingerprint(), expected '%s', got '%s', AlertGroup: %v",
|
||||
testCase.fingerprint, testCase.ag.ContentFingerprint(), testCase.ag)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user