mirror of https://github.com/grafana/grafana
parent
2f60929d1e
commit
dc3a62da83
@ -0,0 +1,81 @@ |
||||
package notifiers |
||||
|
||||
import ( |
||||
"testing" |
||||
|
||||
"github.com/grafana/grafana/pkg/components/simplejson" |
||||
m "github.com/grafana/grafana/pkg/models" |
||||
. "github.com/smartystreets/goconvey/convey" |
||||
) |
||||
|
||||
func TestSlackNotifier(t *testing.T) { |
||||
Convey("Slack notifier tests", t, func() { |
||||
|
||||
Convey("Parsing alert notification from settings", func() { |
||||
Convey("empty settings should return error", func() { |
||||
json := `{ }` |
||||
|
||||
settingsJSON, _ := simplejson.NewJson([]byte(json)) |
||||
model := &m.AlertNotification{ |
||||
Name: "ops", |
||||
Type: "slack", |
||||
Settings: settingsJSON, |
||||
} |
||||
|
||||
_, err := NewSlackNotifier(model) |
||||
So(err, ShouldNotBeNil) |
||||
}) |
||||
|
||||
Convey("from settings", func() { |
||||
json := ` |
||||
{ |
||||
"url": "http://google.com" |
||||
}` |
||||
|
||||
settingsJSON, _ := simplejson.NewJson([]byte(json)) |
||||
model := &m.AlertNotification{ |
||||
Name: "ops", |
||||
Type: "slack", |
||||
Settings: settingsJSON, |
||||
} |
||||
|
||||
not, err := NewSlackNotifier(model) |
||||
slackNotifier := not.(*SlackNotifier) |
||||
|
||||
So(err, ShouldBeNil) |
||||
So(slackNotifier.Name, ShouldEqual, "ops") |
||||
So(slackNotifier.Type, ShouldEqual, "slack") |
||||
So(slackNotifier.Url, ShouldEqual, "http://google.com") |
||||
So(slackNotifier.Recipient, ShouldEqual, "") |
||||
So(slackNotifier.Mention, ShouldEqual, "") |
||||
}) |
||||
|
||||
Convey("from settings with Recipient and Mention", func() { |
||||
json := ` |
||||
{ |
||||
"url": "http://google.com", |
||||
"recipient": "#ds-opentsdb", |
||||
"mention": "@carl" |
||||
}` |
||||
|
||||
settingsJSON, _ := simplejson.NewJson([]byte(json)) |
||||
model := &m.AlertNotification{ |
||||
Name: "ops", |
||||
Type: "slack", |
||||
Settings: settingsJSON, |
||||
} |
||||
|
||||
not, err := NewSlackNotifier(model) |
||||
slackNotifier := not.(*SlackNotifier) |
||||
|
||||
So(err, ShouldBeNil) |
||||
So(slackNotifier.Name, ShouldEqual, "ops") |
||||
So(slackNotifier.Type, ShouldEqual, "slack") |
||||
So(slackNotifier.Url, ShouldEqual, "http://google.com") |
||||
So(slackNotifier.Recipient, ShouldEqual, "#ds-opentsdb") |
||||
So(slackNotifier.Mention, ShouldEqual, "@carl") |
||||
}) |
||||
|
||||
}) |
||||
}) |
||||
} |
Loading…
Reference in new issue