func ldapAutherScenario(desc string, fn scenarioFunc) { Convey(desc, func() { defer bus.ClearBusHandlers() sc := &scenarioContext{} bus.AddHandler("test", func(cmd *m.CreateUserCommand) error { sc.createUserCmd = cmd sc.createUserCmd.Result = m.User{Login: cmd.Login} return nil }) bus.AddHandler("test", func(cmd *m.AddOrgUserCommand) error { sc.addOrgUserCmd = cmd return nil }) bus.AddHandler("test", func(cmd *m.UpdateOrgUserCommand) error { sc.updateOrgUserCmd = cmd return nil }) bus.AddHandler("test", func(cmd *m.RemoveOrgUserCommand) error { sc.removeOrgUserCmd = cmd return nil }) bus.AddHandler("test", func(cmd *m.UpdateUserCommand) error { sc.updateUserCmd = cmd return nil }) fn(sc) }) }
func middlewareScenario(desc string, fn scenarioFunc) { Convey(desc, func() { defer bus.ClearBusHandlers() sc := &scenarioContext{} viewsPath, _ := filepath.Abs("../../public/views") sc.m = macaron.New() sc.m.Use(macaron.Renderer(macaron.RenderOptions{ Directory: viewsPath, Delims: macaron.Delims{Left: "[[", Right: "]]"}, })) sc.m.Use(GetContextHandler()) // mock out gc goroutine startSessionGC = func() {} sc.m.Use(Sessioner(&session.Options{})) sc.defaultHandler = func(c *Context) { sc.context = c if sc.handlerFunc != nil { sc.handlerFunc(sc.context) } } sc.m.Get("/", sc.defaultHandler) fn(sc) }) }
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 = "*****@*****.**" 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: "*****@*****.**"}}) So(err, ShouldBeNil) So(sentMsg.Body, ShouldContainSubstring, "body") So(sentMsg.Subject, ShouldEqual, "Reset your Grafana password - [email protected]") So(sentMsg.Body, ShouldNotContainSubstring, "Subject") }) }) }
func TestEmailIntegrationTest(t *testing.T) { SkipConvey("Given the notifications service", t, func() { bus.ClearBusHandlers() setting.StaticRootPath = "../../../public/" setting.Smtp.Enabled = true setting.Smtp.TemplatesPattern = "emails/*.html" setting.Smtp.FromAddress = "*****@*****.**" setting.BuildVersion = "4.0.0" err := Init() So(err, ShouldBeNil) addToMailQueue = func(msg *Message) { ioutil.WriteFile("../../../tmp/test_email.html", []byte(msg.Body), 0777) } Convey("When sending reset email password", func() { cmd := &m.SendEmailCommand{ Data: map[string]interface{}{ "Title": "[CRITICAL] Imaginary timeserie alert", "State": "Firing", "Name": "Imaginary timeserie alert", "Severity": "ok", "SeverityColor": "#D63232", "Message": "Alert message that will support markdown in some distant future.", "RuleUrl": "http://*****:*****@asdf.com "}, Template: "alert_notification.html", } err := sendEmailCommandHandler(cmd) So(err, ShouldBeNil) }) }) }