homebox/backend/pkgs/mailer/mailer_test.go

64 lines
948 B
Go

package mailer
import (
"encoding/json"
"os"
"testing"
"github.com/stretchr/testify/require"
)
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)
require.NoError(t, err)
}