56 lines
1.3 KiB
Go
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")
|
|
}
|
|
}
|