mirror of
https://github.com/prymitive/karma
synced 2026-05-05 03:16:51 +00:00
Merge pull request #712 from prymitive/more-backend-tests
chore(tests): add more backend test coverage
This commit is contained in:
@@ -132,3 +132,70 @@ func TestStripReceivers(t *testing.T) {
|
||||
t.Errorf("Expected no alerts after stripping all receivers, got %d", len(alerts))
|
||||
}
|
||||
}
|
||||
|
||||
func TestClearData(t *testing.T) {
|
||||
log.SetLevel(log.PanicLevel)
|
||||
httpmock.Activate()
|
||||
for _, version := range mock.ListAllMocks() {
|
||||
name := fmt.Sprintf("clear-data-mock-%s", version)
|
||||
uri := fmt.Sprintf("http://localhost/clear/%s", version)
|
||||
am, _ := alertmanager.NewAlertmanager(name, uri, alertmanager.WithRequestTimeout(time.Second))
|
||||
|
||||
mock.RegisterURL(fmt.Sprintf("%s/metrics", uri), version, "metrics")
|
||||
_ = am.Pull()
|
||||
if am.Version() != "" {
|
||||
t.Errorf("[%s] Got non-empty version string: %s", am.Name, am.Version())
|
||||
}
|
||||
if am.Error() == "" {
|
||||
t.Errorf("[%s] Got empty error string", am.Name)
|
||||
}
|
||||
if len(am.Silences()) != 0 {
|
||||
t.Errorf("[%s] Get %d silences", am.Name, len(am.Silences()))
|
||||
}
|
||||
if len(am.Alerts()) != 0 {
|
||||
t.Errorf("[%s] Get %d alerts", am.Name, len(am.Alerts()))
|
||||
}
|
||||
if len(am.KnownLabels()) != 0 {
|
||||
t.Errorf("[%s] Get %d known labels", am.Name, len(am.KnownLabels()))
|
||||
}
|
||||
|
||||
mock.RegisterURL(fmt.Sprintf("%s/api/v1/status", uri), version, "api/v1/status")
|
||||
mock.RegisterURL(fmt.Sprintf("%s/api/v1/silences", uri), version, "api/v1/silences")
|
||||
mock.RegisterURL(fmt.Sprintf("%s/api/v2/silences", uri), version, "api/v2/silences")
|
||||
_ = am.Pull()
|
||||
if am.Version() != "" {
|
||||
t.Errorf("[%s] Got non-empty version string: %s", am.Name, am.Version())
|
||||
}
|
||||
if am.Error() == "" {
|
||||
t.Errorf("[%s] Got empty error string", am.Name)
|
||||
}
|
||||
if len(am.Silences()) != 0 {
|
||||
t.Errorf("[%s] Get %d silences", am.Name, len(am.Silences()))
|
||||
}
|
||||
if len(am.Alerts()) != 0 {
|
||||
t.Errorf("[%s] Get %d alerts", am.Name, len(am.Alerts()))
|
||||
}
|
||||
if len(am.KnownLabels()) != 0 {
|
||||
t.Errorf("[%s] Get %d known labels", am.Name, len(am.KnownLabels()))
|
||||
}
|
||||
|
||||
mock.RegisterURL(fmt.Sprintf("%s/api/v1/alerts/groups", uri), version, "api/v1/alerts/groups")
|
||||
mock.RegisterURL(fmt.Sprintf("%s/api/v2/alerts/groups", uri), version, "api/v2/alerts/groups")
|
||||
_ = am.Pull()
|
||||
if am.Version() == "" {
|
||||
t.Errorf("[%s] Got empty version string", am.Name)
|
||||
}
|
||||
if am.Error() != "" {
|
||||
t.Errorf("[%s] Got non-empty error string: %s", am.Name, am.Error())
|
||||
}
|
||||
if len(am.Silences()) == 0 {
|
||||
t.Errorf("[%s] Get %d silences", am.Name, len(am.Silences()))
|
||||
}
|
||||
if len(am.Alerts()) == 0 {
|
||||
t.Errorf("[%s] Get %d alerts", am.Name, len(am.Alerts()))
|
||||
}
|
||||
if len(am.KnownLabels()) == 0 {
|
||||
t.Errorf("[%s] Get %d known labels", am.Name, len(am.KnownLabels()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,22 +31,88 @@ var acTests = []acTest{
|
||||
{
|
||||
Alerts: []models.Alert{
|
||||
models.Alert{
|
||||
State: models.AlertStateActive,
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"foo": "bar",
|
||||
"number": "1",
|
||||
},
|
||||
Receiver: "default",
|
||||
Alertmanager: []models.AlertmanagerInstance{
|
||||
{Name: "am1"},
|
||||
{Name: "am2"},
|
||||
},
|
||||
},
|
||||
models.Alert{
|
||||
State: models.AlertStateSuppressed,
|
||||
Labels: map[string]string{
|
||||
"foo": "bar baz",
|
||||
"number": "5",
|
||||
},
|
||||
Receiver: "not default",
|
||||
Alertmanager: []models.AlertmanagerInstance{
|
||||
{Name: "am1"},
|
||||
{
|
||||
Name: "am2",
|
||||
Silences: map[string]*models.Silence{
|
||||
"1234567890": &models.Silence{
|
||||
ID: "1234567890",
|
||||
CreatedBy: "me@example.com",
|
||||
JiraID: "JIRA-1",
|
||||
},
|
||||
}},
|
||||
},
|
||||
SilencedBy: []string{"1234567890"},
|
||||
},
|
||||
},
|
||||
Expected: []string{
|
||||
"@age\u003e1h",
|
||||
"@age\u003c10m",
|
||||
"@age\u003c1h",
|
||||
"@age\u003e10m",
|
||||
"@age\u003e1h",
|
||||
"@alertmanager!=am1",
|
||||
"@alertmanager!=am2",
|
||||
"@alertmanager=am1",
|
||||
"@alertmanager=am2",
|
||||
"@limit=10",
|
||||
"@limit=50",
|
||||
"@state!=",
|
||||
"@state=",
|
||||
"@receiver!=default",
|
||||
"@receiver!=not default",
|
||||
"@receiver!~default",
|
||||
"@receiver!~not",
|
||||
"@receiver=default",
|
||||
"@receiver=not default",
|
||||
"@receiver=~default",
|
||||
"@receiver=~not",
|
||||
"@silence_author!=me@example.com",
|
||||
"@silence_author!~me@example.com",
|
||||
"@silence_author=me@example.com",
|
||||
"@silence_author=~me@example.com",
|
||||
"@silence_id!=1234567890",
|
||||
"@silence_id=1234567890",
|
||||
"@silence_jira!=JIRA-1",
|
||||
"@silence_jira!~JIRA-1",
|
||||
"@silence_jira=JIRA-1",
|
||||
"@silence_jira=~JIRA-1",
|
||||
"@state!=active",
|
||||
"@state!=suppressed",
|
||||
"@state=active",
|
||||
"@state=suppressed",
|
||||
"foo!=bar",
|
||||
"foo!=bar baz",
|
||||
"foo!~bar",
|
||||
"foo!~baz",
|
||||
"foo=bar",
|
||||
"foo=bar baz",
|
||||
"foo=~bar",
|
||||
"foo=~baz",
|
||||
"number!=1",
|
||||
"number!=5",
|
||||
"number\u003c1",
|
||||
"number\u003c5",
|
||||
"number=1",
|
||||
"number=5",
|
||||
"number\u003e1",
|
||||
"number\u003e5",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -541,6 +541,30 @@ var tests = []filterTest{
|
||||
Alert: models.Alert{},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@receiver=by-name",
|
||||
IsValid: true,
|
||||
Alert: models.Alert{
|
||||
Receiver: "by-name",
|
||||
},
|
||||
IsMatch: true,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@receiver=by-name",
|
||||
IsValid: true,
|
||||
Alert: models.Alert{
|
||||
Receiver: "by-not-name",
|
||||
},
|
||||
IsMatch: false,
|
||||
},
|
||||
filterTest{
|
||||
Expression: "@receiver=~name",
|
||||
IsValid: true,
|
||||
Alert: models.Alert{
|
||||
Receiver: "by-not-name",
|
||||
},
|
||||
IsMatch: true,
|
||||
},
|
||||
}
|
||||
|
||||
func TestFilters(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user