54 lines
1.2 KiB
Go
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))
|
|
}
|