mirror of
https://github.com/prymitive/karma
synced 2026-05-19 04:26:41 +00:00
feat(tests): add more test coverage
This commit is contained in:
38
api_test.go
38
api_test.go
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/blang/semver"
|
||||
"github.com/google/go-cmp/cmp"
|
||||
|
||||
"github.com/prymitive/karma/internal/config"
|
||||
"github.com/prymitive/karma/internal/mock"
|
||||
"github.com/prymitive/karma/internal/models"
|
||||
)
|
||||
@@ -1149,10 +1150,47 @@ var sortTests = []sortTest{
|
||||
expectedLabel: "cluster",
|
||||
expectedValues: []string{"prod", "staging", "dev", "staging", "prod", "dev"},
|
||||
},
|
||||
{
|
||||
filter: "q=@receiver=by-cluster-service",
|
||||
sortOrder: "",
|
||||
sortLabel: "",
|
||||
sortReverse: "0",
|
||||
expectedLabel: "cluster",
|
||||
expectedValues: []string{"dev", "prod", "staging", "dev", "staging", "prod"},
|
||||
},
|
||||
{
|
||||
filter: "q=@receiver=by-cluster-service",
|
||||
sortOrder: "",
|
||||
sortLabel: "",
|
||||
sortReverse: "1",
|
||||
expectedLabel: "cluster",
|
||||
expectedValues: []string{"prod", "staging", "dev", "staging", "prod", "dev"},
|
||||
},
|
||||
{
|
||||
filter: "q=@receiver=by-cluster-service",
|
||||
sortOrder: "label",
|
||||
sortLabel: "job",
|
||||
sortReverse: "0",
|
||||
expectedLabel: "job",
|
||||
expectedValues: []string{"node_exporter", "node_exporter", "node_exporter", "node_ping", "node_ping", "node_ping"},
|
||||
},
|
||||
{
|
||||
filter: "q=@receiver=by-cluster-service",
|
||||
sortOrder: "label",
|
||||
sortLabel: "job",
|
||||
sortReverse: "1",
|
||||
expectedLabel: "job",
|
||||
expectedValues: []string{"node_ping", "node_ping", "node_ping", "node_exporter", "node_exporter", "node_exporter"},
|
||||
},
|
||||
}
|
||||
|
||||
func TestSortOrder(t *testing.T) {
|
||||
mockConfig()
|
||||
config.Config.Grid.Sorting.CustomValues.Labels = map[string]map[string]string{}
|
||||
config.Config.Grid.Sorting.CustomValues.Labels["job"] = map[string]string{
|
||||
"node_exporter": "1",
|
||||
"node_ping": "2",
|
||||
}
|
||||
for _, version := range mock.ListAllMocks() {
|
||||
t.Logf("Testing API using mock files from Alertmanager %s", version)
|
||||
mockAlerts(version)
|
||||
|
||||
@@ -186,3 +186,53 @@ func TestFingerprint(t *testing.T) {
|
||||
t.Errorf("Expected LabelsFingerprint and ContentFingerprint to return different values")
|
||||
}
|
||||
}
|
||||
|
||||
type findLatestStartsAtTest struct {
|
||||
alerts []models.Alert
|
||||
expectedStartsAt time.Time
|
||||
}
|
||||
|
||||
var findLatestStartsAtTests = []findLatestStartsAtTest{
|
||||
findLatestStartsAtTest{
|
||||
alerts: []models.Alert{
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 5, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 8, time.UTC)},
|
||||
},
|
||||
expectedStartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 8, time.UTC),
|
||||
},
|
||||
findLatestStartsAtTest{
|
||||
alerts: []models.Alert{
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 8, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 2, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC)},
|
||||
},
|
||||
expectedStartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 8, time.UTC),
|
||||
},
|
||||
findLatestStartsAtTest{
|
||||
alerts: []models.Alert{
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC)},
|
||||
},
|
||||
expectedStartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC),
|
||||
},
|
||||
findLatestStartsAtTest{
|
||||
alerts: []models.Alert{
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 5, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 8, time.UTC)},
|
||||
{StartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 1, time.UTC)},
|
||||
},
|
||||
expectedStartsAt: time.Date(2017, time.January, 10, 0, 0, 0, 8, time.UTC),
|
||||
},
|
||||
}
|
||||
|
||||
func TestFindLatestStartsAt(t *testing.T) {
|
||||
for _, testCase := range findLatestStartsAtTests {
|
||||
ag := models.AlertGroup{Alerts: testCase.alerts}
|
||||
got := ag.FindLatestStartsAt()
|
||||
if !got.Equal(testCase.expectedStartsAt) {
|
||||
t.Errorf("FindLatestStartsAt returned %s when %s was expected", got, testCase.expectedStartsAt)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user