- Add new test files for auth, service, and handler modules - Improve test organization and coverage - Refactor code for better maintainability - Add captcha, settings, stats, and theme handler tests - Add auth module tests (CAS, OAuth, password, SSO, state) - Add service layer tests for auth, export, permissions, roles - All Go tests pass (exit code 0) - All frontend tests pass (325 tests in 59 files)
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
)
|
|
|
|
// =============================================================================
|
|
// Email Provider Tests
|
|
// =============================================================================
|
|
|
|
func TestNewSMTPEmailProvider(t *testing.T) {
|
|
t.Run("create SMTP provider", func(t *testing.T) {
|
|
cfg := SMTPEmailConfig{
|
|
Host: "smtp.test.com",
|
|
Port: 587,
|
|
Username: "user",
|
|
Password: "pass",
|
|
FromEmail: "from@test.com",
|
|
FromName: "Test Sender",
|
|
}
|
|
provider := NewSMTPEmailProvider(cfg)
|
|
if provider == nil {
|
|
t.Error("Expected provider to be created")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestSMTPEmailProvider_SendMail(t *testing.T) {
|
|
t.Run("send mail with invalid server", func(t *testing.T) {
|
|
cfg := SMTPEmailConfig{
|
|
Host: "localhost",
|
|
Port: 25,
|
|
FromEmail: "test@test.com",
|
|
}
|
|
provider := NewSMTPEmailProvider(cfg)
|
|
ctx := context.Background()
|
|
|
|
err := provider.SendMail(ctx, "to@test.com", "Test Subject", "<html>body</html>")
|
|
// Expect error because no SMTP server is running
|
|
if err == nil {
|
|
t.Log("SendMail succeeded unexpectedly")
|
|
} else {
|
|
t.Logf("SendMail failed as expected: %v", err)
|
|
}
|
|
})
|
|
|
|
t.Run("send mail with auth config", func(t *testing.T) {
|
|
cfg := SMTPEmailConfig{
|
|
Host: "localhost",
|
|
Port: 587,
|
|
Username: "user",
|
|
Password: "pass",
|
|
FromEmail: "from@test.com",
|
|
FromName: "Test Sender",
|
|
}
|
|
provider := NewSMTPEmailProvider(cfg)
|
|
ctx := context.Background()
|
|
|
|
err := provider.SendMail(ctx, "to@test.com", "Test Subject", "<html>body</html>")
|
|
// Expect error because no SMTP server is running
|
|
_ = err
|
|
})
|
|
}
|
|
|
|
func TestMockEmailProvider_SendMail(t *testing.T) {
|
|
t.Run("mock send mail", func(t *testing.T) {
|
|
provider := &MockEmailProvider{}
|
|
ctx := context.Background()
|
|
|
|
err := provider.SendMail(ctx, "to@test.com", "Test Subject", "<html>body</html>")
|
|
if err != nil {
|
|
t.Errorf("MockEmailProvider should not return error: %v", err)
|
|
}
|
|
})
|
|
}
|