forked from mirrors/homebox
bd321af29f
* new PR tasks * add homebox to know words * formatting * bump deps * generate db models * ts errors * drop id * fix accessor * drop unused time field * change CI * add expected error * add type check * resolve serveral type errors * hoise in CI
63 lines
942 B
Go
63 lines
942 B
Go
package mailer
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const (
|
|
TestMailerConfig = "test-mailer.json"
|
|
)
|
|
|
|
func GetTestMailer() (*Mailer, error) {
|
|
// Read JSON File
|
|
bytes, err := os.ReadFile(TestMailerConfig)
|
|
|
|
mailer := &Mailer{}
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// Unmarshal JSON
|
|
err = json.Unmarshal(bytes, mailer)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return mailer, nil
|
|
}
|
|
|
|
func Test_Mailer(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
mailer, err := GetTestMailer()
|
|
if err != nil {
|
|
t.Skip("Error Reading Test Mailer Config - Skipping")
|
|
}
|
|
|
|
if !mailer.Ready() {
|
|
t.Skip("Mailer not ready - Skipping")
|
|
}
|
|
|
|
message, err := RenderWelcome()
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
mb := NewMessageBuilder().
|
|
SetBody(message).
|
|
SetSubject("Hello").
|
|
SetTo("John Doe", "john@doe.com").
|
|
SetFrom("Jane Doe", "jane@doe.com")
|
|
|
|
msg := mb.Build()
|
|
|
|
err = mailer.Send(msg)
|
|
|
|
assert.Nil(t, err)
|
|
}
|