ultisuite-backend/internal/api/mail/validate_accounts_test.go
2026-05-24 00:03:36 +02:00

56 lines
1.3 KiB
Go

package mail
import "testing"
func TestValidateUpdateAccount(t *testing.T) {
t.Parallel()
valid := &updateAccountRequest{
Email: "user@example.com",
IMAPHost: "imap.example.com",
IMAPPort: 993,
SMTPHost: "smtp.example.com",
SMTPPort: 587,
}
if err := validateUpdateAccount(valid); err != nil {
t.Fatalf("expected valid update, got %v", err)
}
withPassword := *valid
withPassword.Password = "secret"
if err := validateUpdateAccount(&withPassword); err != nil {
t.Fatalf("expected valid update with password, got %v", err)
}
emptyEmail := *valid
emptyEmail.Email = ""
if err := validateUpdateAccount(&emptyEmail); err == nil {
t.Fatal("expected validation error for empty email")
}
}
func TestValidateTestAccountWithStoredCredentials(t *testing.T) {
t.Parallel()
stored := &testAccountRequest{
AccountID: "550e8400-e29b-41d4-a716-446655440000",
IMAPHost: "imap.example.com",
IMAPPort: 993,
SMTPHost: "smtp.example.com",
SMTPPort: 587,
}
if err := validateTestAccount(stored); err != nil {
t.Fatalf("expected valid test with account_id, got %v", err)
}
noCreds := &testAccountRequest{
IMAPHost: "imap.example.com",
IMAPPort: 993,
SMTPHost: "smtp.example.com",
SMTPPort: 587,
}
if err := validateTestAccount(noCreds); err == nil {
t.Fatal("expected validation error without password or account_id")
}
}