| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package notifications
- import (
- "testing"
- "github.com/grafana/grafana/pkg/bus"
- m "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/setting"
- . "github.com/smartystreets/goconvey/convey"
- )
- type testTriggeredAlert struct {
- ActualValue float64
- Name string
- State string
- }
- func TestNotifications(t *testing.T) {
- Convey("Given the notifications service", t, func() {
- bus.ClearBusHandlers()
- setting.StaticRootPath = "../../../public/"
- setting.Smtp.Enabled = true
- setting.Smtp.TemplatesPattern = "emails/*.html"
- setting.Smtp.FromAddress = "from@address.com"
- err := Init()
- So(err, ShouldBeNil)
- var sentMsg *Message
- addToMailQueue = func(msg *Message) {
- sentMsg = msg
- }
- Convey("When sending reset email password", func() {
- err := sendResetPasswordEmail(&m.SendResetPasswordEmailCommand{User: &m.User{Email: "asd@asd.com"}})
- So(err, ShouldBeNil)
- So(sentMsg.Body, ShouldContainSubstring, "body")
- So(sentMsg.Subject, ShouldEqual, "Reset your Grafana password - asd@asd.com")
- So(sentMsg.Body, ShouldNotContainSubstring, "Subject")
- })
- Convey("Alert notifications", func() {
- Convey("When sending reset email password", func() {
- cmd := &m.SendEmailCommand{
- Data: map[string]interface{}{
- "Name": "Name",
- "State": "Critical",
- "Description": "Description",
- "DashboardLink": "http://localhost:3000/dashboard/db/alerting",
- "AlertPageUrl": "http://localhost:3000/alerting",
- "DashboardImage": "http://localhost:3000/render/dashboard-solo/db/alerting?from=1466169458375&to=1466171258375&panelId=1&width=1000&height=500",
- "TriggeredAlerts": []testTriggeredAlert{
- {Name: "desktop", State: "Critical", ActualValue: 13},
- {Name: "mobile", State: "Warn", ActualValue: 5},
- },
- },
- To: []string{"asd@asd.com "},
- Template: "alert_notification.html",
- }
- err := sendEmailCommandHandler(cmd)
- So(err, ShouldBeNil)
- So(sentMsg.Body, ShouldContainSubstring, "Alertstate: Critical")
- So(sentMsg.Body, ShouldContainSubstring, "http://localhost:3000/dashboard/db/alerting")
- So(sentMsg.Body, ShouldContainSubstring, "Critical")
- So(sentMsg.Body, ShouldContainSubstring, "Warn")
- So(sentMsg.Body, ShouldContainSubstring, "mobile")
- So(sentMsg.Body, ShouldContainSubstring, "desktop")
- So(sentMsg.Subject, ShouldContainSubstring, "Grafana Alert: [ Critical ] ")
- })
- Convey("given critical", func() {
- cmd := &m.SendEmailCommand{
- Data: map[string]interface{}{
- "Name": "Name",
- "State": "Warn",
- "Description": "Description",
- "DashboardLink": "http://localhost:3000/dashboard/db/alerting",
- "DashboardImage": "http://localhost:3000/render/dashboard-solo/db/alerting?from=1466169458375&to=1466171258375&panelId=1&width=1000&height=500",
- "AlertPageUrl": "http://localhost:3000/alerting",
- "TriggeredAlerts": []testTriggeredAlert{
- {Name: "desktop", State: "Critical", ActualValue: 13},
- {Name: "mobile", State: "Warn", ActualValue: 5},
- },
- },
- To: []string{"asd@asd.com "},
- Template: "alert_notification.html",
- }
- err := sendEmailCommandHandler(cmd)
- So(err, ShouldBeNil)
- So(sentMsg.Body, ShouldContainSubstring, "Alertstate: Warn")
- So(sentMsg.Body, ShouldContainSubstring, "http://localhost:3000/dashboard/db/alerting")
- So(sentMsg.Body, ShouldContainSubstring, "Critical")
- So(sentMsg.Body, ShouldContainSubstring, "Warn")
- So(sentMsg.Body, ShouldContainSubstring, "mobile")
- So(sentMsg.Body, ShouldContainSubstring, "desktop")
- So(sentMsg.Subject, ShouldContainSubstring, "Grafana Alert: [ Warn ]")
- })
- Convey("given ok", func() {
- cmd := &m.SendEmailCommand{
- Data: map[string]interface{}{
- "Name": "Name",
- "State": "Ok",
- "Description": "Description",
- "DashboardLink": "http://localhost:3000/dashboard/db/alerting",
- "AlertPageUrl": "http://localhost:3000/alerting",
- },
- To: []string{"asd@asd.com "},
- Template: "alert_notification.html",
- }
- err := sendEmailCommandHandler(cmd)
- So(err, ShouldBeNil)
- So(sentMsg.Subject, ShouldContainSubstring, "Grafana Alert: [ Ok ]")
- })
- })
- })
- }
|