veza/veza-backend-api/internal/email/sender_test.go

52 lines
1.3 KiB
Go

package email
import (
"testing"
"go.uber.org/zap"
)
func TestLoadSMTPConfigFromEnv(t *testing.T) {
// Test avec valeurs par défaut (dev mode - MailHog)
config := LoadSMTPConfigFromEnv()
// En dev sans config, devrait avoir des valeurs par défaut
if config.Host == "" {
t.Log("SMTP_HOST not set, using default (localhost)")
}
if config.Port == "" {
t.Log("SMTP_PORT not set, using default (1025)")
}
}
func TestSMTPEmailSender_Send(t *testing.T) {
logger, _ := zap.NewDevelopment()
defer logger.Sync()
// Config pour test (sans SMTP réel, juste vérifier que ça ne panique pas)
config := SMTPConfig{
Host: "localhost",
Port: "1025",
Username: "test",
Password: "test",
From: "test@example.com",
FromName: "Test",
}
sender := NewSMTPEmailSender(config, logger)
// Test avec config vide (dev mode - devrait juste logger)
emptyConfig := SMTPConfig{}
emptySender := NewSMTPEmailSender(emptyConfig, logger)
err := emptySender.Send("test@example.com", "Test Subject", "Test Body")
if err != nil {
t.Logf("Expected no error in dev mode (no SMTP config): %v", err)
}
// Test avec config mais sans serveur SMTP réel (devrait échouer mais pas paniquer)
err = sender.Send("test@example.com", "Test Subject", "Test Body")
if err != nil {
t.Logf("Expected error when SMTP server not available: %v", err)
}
}