Files
mailgoserver/internal/db/crud_domain_dns_credentials_test.go
T

70 lines
2.3 KiB
Go

package db
import "testing"
func TestDomainDNSCredentialsRoundTrip(t *testing.T) {
database := openTestDB(t)
domainID, err := database.CreateDomain("dnsauto.example")
if err != nil {
t.Fatal(err)
}
if got, err := database.GetDomainDNSCredentials(domainID); err != nil || got != nil {
t.Fatalf("expected no credentials configured yet, got %+v (err=%v)", got, err)
}
creds := DomainDNSCredentials{
DomainID: domainID, Provider: "cloudflare", ZoneName: "dnsauto.example",
CloudflareAPIToken: "tok1",
}
if err := database.SetDomainDNSCredentials(creds); err != nil {
t.Fatal(err)
}
got, err := database.GetDomainDNSCredentials(domainID)
if err != nil || got == nil {
t.Fatalf("expected credentials to round-trip, got %+v (err=%v)", got, err)
}
if got.Provider != "cloudflare" || got.CloudflareAPIToken != "tok1" {
t.Fatalf("unexpected credentials: %+v", got)
}
// Upsert: setting again with a different provider replaces, not duplicates.
creds.Provider = "route53"
creds.Route53AccessKeyID = "AKIA123"
creds.CloudflareAPIToken = ""
if err := database.SetDomainDNSCredentials(creds); err != nil {
t.Fatal(err)
}
got, err = database.GetDomainDNSCredentials(domainID)
if err != nil || got == nil || got.Provider != "route53" || got.Route53AccessKeyID != "AKIA123" {
t.Fatalf("expected upsert to replace the row, got %+v (err=%v)", got, err)
}
if err := database.DeleteDomainDNSCredentials(domainID); err != nil {
t.Fatal(err)
}
if got, err := database.GetDomainDNSCredentials(domainID); err != nil || got != nil {
t.Fatalf("expected credentials gone after delete, got %+v (err=%v)", got, err)
}
}
func TestSetDomainDKIMDNSAutomation(t *testing.T) {
database := openTestDB(t)
domainID, err := database.CreateDomain("auto.example")
if err != nil {
t.Fatal(err)
}
dom, err := database.GetDomainByID(domainID)
if err != nil || dom == nil || dom.DKIMDNSAutomation != "manual" {
t.Fatalf("expected dkim_dns_automation to default to manual, got %+v (err=%v)", dom, err)
}
if err := database.SetDomainDKIMDNSAutomation(domainID, "automatic"); err != nil {
t.Fatal(err)
}
dom, err = database.GetDomainByID(domainID)
if err != nil || dom == nil || dom.DKIMDNSAutomation != "automatic" {
t.Fatalf("expected dkim_dns_automation to be automatic, got %+v (err=%v)", dom, err)
}
}