70 lines
2.3 KiB
Go
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)
|
|
}
|
|
}
|