feat(tests): add more test coverage

This commit is contained in:
Łukasz Mierzwa
2019-08-07 15:03:58 +01:00
parent 1542085c87
commit 4ab8f0305a
2 changed files with 88 additions and 0 deletions

View File

@@ -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)

View File

@@ -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)
}
}
}