diff --git a/pkg/services/alerting/notifiers/slack_test.go b/pkg/services/alerting/notifiers/slack_test.go new file mode 100644 index 00000000000..5b1763064aa --- /dev/null +++ b/pkg/services/alerting/notifiers/slack_test.go @@ -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") + }) + + }) + }) +} diff --git a/pkg/services/alerting/notifiers/webhook_test.go b/pkg/services/alerting/notifiers/webhook_test.go index 6147f54d773..eb25130e4e1 100644 --- a/pkg/services/alerting/notifiers/webhook_test.go +++ b/pkg/services/alerting/notifiers/webhook_test.go @@ -40,12 +40,12 @@ func TestWebhookNotifier(t *testing.T) { } not, err := NewWebHookNotifier(model) - emailNotifier := not.(*WebhookNotifier) + webhookNotifier := not.(*WebhookNotifier) So(err, ShouldBeNil) - So(emailNotifier.Name, ShouldEqual, "ops") - So(emailNotifier.Type, ShouldEqual, "email") - So(emailNotifier.Url, ShouldEqual, "http://google.com") + So(webhookNotifier.Name, ShouldEqual, "ops") + So(webhookNotifier.Type, ShouldEqual, "email") + So(webhookNotifier.Url, ShouldEqual, "http://google.com") }) }) })