resolver, watcher: a domain's nameservers are only its own delegation (closes #222)
check / check (push) Successful in 1m20s
check / check (push) Successful in 1m20s
When a domain's parent zone's servers answer NXDOMAIN, LookupNS returns ErrNXDomain. The watcher then saves the domain with no nameservers and nxdomain set, shown on the dashboard and in /api/v1/status, asks for none of its records and removes those saved, so its old nameservers go in one NS Change. A domain with no delegation of its own gets an empty set and its records are still asked at the zone it is in. FindAuthoritativeNameservers moves to a parent name only on one of those two answers; when the servers do not answer, it returns the error. After an upgrade, a domain without its own delegation that was saved with its parent zone's nameservers gets one NS Change; the README says so. Model: opus-5-5
This commit is contained in:
@@ -191,21 +191,39 @@ func TestDashboardShowsDomainRecordsUnderDomains(t *testing.T) {
|
||||
|
||||
words := strings.Join(strings.Fields(page), " ")
|
||||
|
||||
footer := "monitoring 1 domains + 1 hostnames"
|
||||
footer := "monitoring 2 domains + 1 hostnames"
|
||||
if !strings.Contains(words, footer) {
|
||||
t.Errorf("dashboard does not say %q", footer)
|
||||
}
|
||||
|
||||
// With the tags taken out, the summary bar starts "Domains 1
|
||||
// With the tags taken out, the summary bar starts "Domains 2
|
||||
// Hostnames 1".
|
||||
text := regexp.MustCompile(`<[^>]*>`).ReplaceAllString(page, " ")
|
||||
summary := "Domains 1 Hostnames 1"
|
||||
summary := "Domains 2 Hostnames 1"
|
||||
|
||||
if !strings.Contains(strings.Join(strings.Fields(text), " "), summary) {
|
||||
t.Errorf("summary bar does not say %q", summary)
|
||||
}
|
||||
}
|
||||
|
||||
// TestDashboardMarksDomainThatDoesNotExist checks that the Domains
|
||||
// section says a domain that does not exist does not exist, and does
|
||||
// not say so of a domain that exists.
|
||||
func TestDashboardMarksDomainThatDoesNotExist(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
page := get(t, newHandlersWithFailures(t).HandleDashboard())
|
||||
domains := dashboardSection(t, page, "Domains")
|
||||
|
||||
if !strings.Contains(dashboardRow(t, domains, missingDomain), "does not exist") {
|
||||
t.Errorf("row of %s does not say it does not exist", missingDomain)
|
||||
}
|
||||
|
||||
if strings.Contains(dashboardRow(t, domains, testDomain), "does not exist") {
|
||||
t.Errorf("row of %s says it does not exist", testDomain)
|
||||
}
|
||||
}
|
||||
|
||||
// rowCells returns the text of each cell of a dashboard table row
|
||||
// whose cells start with tag, "<th" or "<td".
|
||||
func rowCells(row string, tag string) []string {
|
||||
|
||||
Reference in New Issue
Block a user