Files
galaxy-game/mail/internal/app/bootstrap_test.go
T
2026-04-17 18:39:16 +02:00

54 lines
1.2 KiB
Go

package app
import (
"io"
"log/slog"
"testing"
"time"
"galaxy/mail/internal/config"
"github.com/stretchr/testify/require"
)
func TestNewProviderBuildsStubProvider(t *testing.T) {
t.Parallel()
provider, err := newProvider(config.SMTPConfig{
Mode: config.SMTPModeStub,
}, bootstrapTestLogger())
require.NoError(t, err)
require.NoError(t, provider.Close())
}
func TestNewProviderBuildsSMTPProvider(t *testing.T) {
t.Parallel()
provider, err := newProvider(config.SMTPConfig{
Mode: config.SMTPModeSMTP,
Addr: "127.0.0.1:2525",
FromEmail: "noreply@example.com",
Timeout: 15 * time.Second,
}, bootstrapTestLogger())
require.NoError(t, err)
require.NoError(t, provider.Close())
}
func TestNewProviderRejectsInvalidSMTPAuthPair(t *testing.T) {
t.Parallel()
_, err := newProvider(config.SMTPConfig{
Mode: config.SMTPModeSMTP,
Addr: "127.0.0.1:2525",
Username: "mailer",
FromEmail: "noreply@example.com",
Timeout: 15 * time.Second,
}, bootstrapTestLogger())
require.Error(t, err)
require.Contains(t, err.Error(), "smtp username and password")
}
func bootstrapTestLogger() *slog.Logger {
return slog.New(slog.NewJSONHandler(io.Discard, nil))
}