mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
115 lines
3.2 KiB
Go
115 lines
3.2 KiB
Go
package alerting
|
|
|
|
// func TestAlertNotificationExtraction(t *testing.T) {
|
|
// Convey("Notifier tests", t, func() {
|
|
// Convey("rules for sending notifications", func() {
|
|
// dummieNotifier := NotifierImpl{}
|
|
//
|
|
// result := &AlertResult{
|
|
// State: alertstates.Critical,
|
|
// }
|
|
//
|
|
// notifier := &Notification{
|
|
// Name: "Test Notifier",
|
|
// Type: "TestType",
|
|
// SendCritical: true,
|
|
// SendWarning: true,
|
|
// }
|
|
//
|
|
// Convey("Should send notification", func() {
|
|
// So(dummieNotifier.ShouldDispath(result, notifier), ShouldBeTrue)
|
|
// })
|
|
//
|
|
// Convey("warn:false and state:warn should not send", func() {
|
|
// result.State = alertstates.Warn
|
|
// notifier.SendWarning = false
|
|
// So(dummieNotifier.ShouldDispath(result, notifier), ShouldBeFalse)
|
|
// })
|
|
// })
|
|
//
|
|
// Convey("Parsing alert notification from settings", func() {
|
|
// Convey("Parsing email", func() {
|
|
// Convey("empty settings should return error", func() {
|
|
// json := `{ }`
|
|
//
|
|
// settingsJSON, _ := simplejson.NewJson([]byte(json))
|
|
// model := &m.AlertNotification{
|
|
// Name: "ops",
|
|
// Type: "email",
|
|
// Settings: settingsJSON,
|
|
// }
|
|
//
|
|
// _, err := NewNotificationFromDBModel(model)
|
|
// So(err, ShouldNotBeNil)
|
|
// })
|
|
//
|
|
// Convey("from settings", func() {
|
|
// json := `
|
|
// {
|
|
// "to": "ops@grafana.org"
|
|
// }`
|
|
//
|
|
// settingsJSON, _ := simplejson.NewJson([]byte(json))
|
|
// model := &m.AlertNotification{
|
|
// Name: "ops",
|
|
// Type: "email",
|
|
// Settings: settingsJSON,
|
|
// }
|
|
//
|
|
// not, err := NewNotificationFromDBModel(model)
|
|
//
|
|
// So(err, ShouldBeNil)
|
|
// So(not.Name, ShouldEqual, "ops")
|
|
// So(not.Type, ShouldEqual, "email")
|
|
// So(reflect.TypeOf(not.Notifierr).Elem().String(), ShouldEqual, "alerting.EmailNotifier")
|
|
//
|
|
// email := not.Notifierr.(*EmailNotifier)
|
|
// So(email.To, ShouldEqual, "ops@grafana.org")
|
|
// })
|
|
// })
|
|
//
|
|
// Convey("Parsing webhook", func() {
|
|
// Convey("empty settings should return error", func() {
|
|
// json := `{ }`
|
|
//
|
|
// settingsJSON, _ := simplejson.NewJson([]byte(json))
|
|
// model := &m.AlertNotification{
|
|
// Name: "ops",
|
|
// Type: "webhook",
|
|
// Settings: settingsJSON,
|
|
// }
|
|
//
|
|
// _, err := NewNotificationFromDBModel(model)
|
|
// So(err, ShouldNotBeNil)
|
|
// })
|
|
//
|
|
// Convey("from settings", func() {
|
|
// json := `
|
|
// {
|
|
// "url": "http://localhost:3000",
|
|
// "username": "username",
|
|
// "password": "password"
|
|
// }`
|
|
//
|
|
// settingsJSON, _ := simplejson.NewJson([]byte(json))
|
|
// model := &m.AlertNotification{
|
|
// Name: "slack",
|
|
// Type: "webhook",
|
|
// Settings: settingsJSON,
|
|
// }
|
|
//
|
|
// not, err := NewNotificationFromDBModel(model)
|
|
//
|
|
// So(err, ShouldBeNil)
|
|
// So(not.Name, ShouldEqual, "slack")
|
|
// So(not.Type, ShouldEqual, "webhook")
|
|
// So(reflect.TypeOf(not.Notifierr).Elem().String(), ShouldEqual, "alerting.WebhookNotifier")
|
|
//
|
|
// webhook := not.Notifierr.(*WebhookNotifier)
|
|
// So(webhook.Url, ShouldEqual, "http://localhost:3000")
|
|
// })
|
|
// })
|
|
// })
|
|
// })
|
|
// }
|