feat(alerting): converter for db model to notification

This commit is contained in:
bergquist
2016-06-16 08:16:16 +02:00
parent 6eca26e8ec
commit 9a8416416d
5 changed files with 259 additions and 30 deletions
@@ -4,6 +4,7 @@ import (
"fmt"
"testing"
"github.com/grafana/grafana/pkg/components/simplejson"
m "github.com/grafana/grafana/pkg/models"
. "github.com/smartystreets/goconvey/convey"
)
@@ -27,41 +28,62 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
Convey("Can save Alert Notification", func() {
cmd := &m.CreateAlertNotificationCommand{
Name: "ops",
Type: "email",
Name: "ops",
Type: "email",
OrgID: 1,
Settings: simplejson.New(),
}
err = CreateAlertNotificationCommand(cmd)
So(err, ShouldBeNil)
So(cmd.Result.Id, ShouldNotEqual, 0)
So(cmd.Result.OrgId, ShouldNotEqual, 0)
So(cmd.Result.Type, ShouldEqual, "email")
Convey("Cannot save Alert Notification with the same name", func() {
err = CreateAlertNotificationCommand(cmd)
So(err, ShouldNotBeNil)
})
Convey("Cannot update alert notification that does not exist", func() {
newCmd := &m.UpdateAlertNotificationCommand{
Name: "NewName",
Type: cmd.Result.Type,
OrgID: cmd.Result.OrgId,
Id: 1337,
}
err = UpdateAlertNotification(newCmd)
So(err, ShouldNotBeNil)
})
Convey("Can update alert notification", func() {
newCmd := &m.UpdateAlertNotificationCommand{
Name: "NewName",
Type: cmd.Result.Type,
OrgID: cmd.Result.OrgId,
Id: cmd.Result.Id,
Name: "NewName",
Type: "webhook",
OrgID: cmd.Result.OrgId,
Settings: simplejson.New(),
Id: cmd.Result.Id,
}
err = UpdateAlertNotification(newCmd)
err := UpdateAlertNotification(newCmd)
So(err, ShouldBeNil)
So(newCmd.Result.Name, ShouldEqual, "NewName")
})
})
Convey("Can search using an array of ids", func() {
So(CreateAlertNotificationCommand(&m.CreateAlertNotificationCommand{
Name: "ops2",
Type: "email",
OrgID: 1,
Settings: simplejson.New(),
}), ShouldBeNil)
So(CreateAlertNotificationCommand(&m.CreateAlertNotificationCommand{
Name: "slack",
Type: "webhook",
OrgID: 1,
Settings: simplejson.New(),
}), ShouldBeNil)
Convey("search", func() {
query := &m.GetAlertNotificationQuery{
Ids: []int64{1, 2, 3},
OrgID: 1,
}
err := AlertNotificationQuery(query)
So(err, ShouldBeNil)
So(len(query.Result), ShouldEqual, 2)
})
})
})
}