add devMode MailService to speed up testing (#178)

running with the dev flag will print the content of an email to stdout
This commit is contained in:
Victor Vrantchan 2016-09-16 08:55:09 -04:00 committed by GitHub
parent f46a951da3
commit a069ec9acf

View file

@ -46,7 +46,12 @@ the way that the kolide server works.
logger = kitlog.NewLogfmtLogger(os.Stderr)
logger = kitlog.NewContext(logger).With("ts", kitlog.DefaultTimestampUTC)
mailSvc := mail.NewService(config.SMTP)
var mailService kolide.MailService
if devMode {
mailService = devMailService{}
} else {
mailService = mail.NewService(config.SMTP)
}
var ds kolide.Datastore
var err error
@ -68,7 +73,7 @@ the way that the kolide server works.
}
}
svc, err := server.NewService(ds, logger, config, mailSvc)
svc, err := server.NewService(ds, logger, config, mailService)
if err != nil {
initFatal(err, "initializing service")
}
@ -129,6 +134,23 @@ the way that the kolide server works.
return serveCmd
}
// used in devMode to print an email
// which would otherwise be sent via SMTP
type devMailService struct{}
func (devMailService) SendEmail(e kolide.Email) error {
fmt.Println("---dev mode: printing email---")
defer fmt.Println("---dev mode: email printed---")
msg, err := e.Msg.Message()
if err != nil {
return err
}
fmt.Printf("From: %q To: %q \n", e.From, e.To)
_, err = os.Stdout.Write(msg)
return err
}
// cors headers
func accessControl(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {