Added orgName parameter for alert_notifications

This commit is contained in:
Pavel Bakulev
2018-11-29 10:22:56 +02:00
parent 6e3e9a337d
commit 4fa45253cf
5 changed files with 110 additions and 17 deletions

View File

@@ -13,13 +13,14 @@ import (
var (
logger = log.New("fake.log")
correct_properties = "./test-configs/correct-properties"
brokenYaml = "./test-configs/broken-yaml"
doubleNotificationsConfig = "./test-configs/double-default"
emptyFolder = "./test-configs/empty_folder"
emptyFile = "./test-configs/empty"
twoNotificationsConfig = "./test-configs/two-notifications"
unknownNotifier = "./test-configs/unknown-notifier"
correct_properties = "./test-configs/correct-properties"
correct_properties_with_orgName = "./test-configs/correct-properties-with-orgName"
brokenYaml = "./test-configs/broken-yaml"
doubleNotificationsConfig = "./test-configs/double-default"
emptyFolder = "./test-configs/empty_folder"
emptyFile = "./test-configs/empty"
twoNotificationsConfig = "./test-configs/two-notifications"
unknownNotifier = "./test-configs/unknown-notifier"
fakeRepo *fakeRepository
)
@@ -32,6 +33,7 @@ func TestNotificationAsConfig(t *testing.T) {
bus.AddHandler("test", mockInsert)
bus.AddHandler("test", mockUpdate)
bus.AddHandler("test", mockGet)
bus.AddHandler("test", mockGetOrg)
alerting.RegisterNotifier(&alerting.NotifierPlugin{
Type: "slack",
@@ -155,6 +157,36 @@ func TestNotificationAsConfig(t *testing.T) {
})
})
})
Convey("Can read correct properties with orgName instead of orgId", func() {
fakeRepo.loadAllOrg = []*models.Org{
{Name: "Main Org. 1", Id: 1},
{Name: "Main Org. 2", Id: 2},
}
fakeRepo.loadAll = []*models.AlertNotification{
{Name: "default-slack-notification", OrgId: 1, Id: 1},
{Name: "another-not-default-notification", OrgId: 2, Id: 2},
}
dc := newNotificationProvisioner(logger)
err := dc.applyChanges(correct_properties_with_orgName)
if err != nil {
t.Fatalf("applyChanges return an error %v", err)
}
So(len(fakeRepo.deleted), ShouldEqual, 2)
So(len(fakeRepo.inserted), ShouldEqual, 0)
So(len(fakeRepo.updated), ShouldEqual, 2)
updated := fakeRepo.updated
nt := updated[0]
So(nt.Name, ShouldEqual, "default-slack-notification")
So(nt.OrgId, ShouldEqual, 1)
nt = updated[1]
So(nt.Name, ShouldEqual, "another-not-default-notification")
So(nt.OrgId, ShouldEqual, 2)
})
Convey("Empty yaml file", func() {
Convey("should have not changed repo", func() {
dc := newNotificationProvisioner(logger)
@@ -190,10 +222,11 @@ func TestNotificationAsConfig(t *testing.T) {
}
type fakeRepository struct {
inserted []*models.CreateAlertNotificationCommand
deleted []*models.DeleteAlertNotificationCommand
updated []*models.UpdateAlertNotificationCommand
loadAll []*models.AlertNotification
inserted []*models.CreateAlertNotificationCommand
deleted []*models.DeleteAlertNotificationCommand
updated []*models.UpdateAlertNotificationCommand
loadAll []*models.AlertNotification
loadAllOrg []*models.Org
}
func mockDelete(cmd *models.DeleteAlertNotificationCommand) error {
@@ -217,3 +250,12 @@ func mockGet(cmd *models.GetAlertNotificationsQuery) error {
}
return nil
}
func mockGetOrg(cmd *models.GetOrgByNameQuery) error {
for _, v := range fakeRepo.loadAllOrg {
if cmd.Name == v.Name {
cmd.Result = v
return nil
}
}
return nil
}