aboutsummaryrefslogtreecommitdiff
path: root/plugin/template/template_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/template/template_test.go')
-rw-r--r--plugin/template/template_test.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/plugin/template/template_test.go b/plugin/template/template_test.go
index 288d833ec..045eba772 100644
--- a/plugin/template/template_test.go
+++ b/plugin/template/template_test.go
@@ -92,6 +92,14 @@ func TestHandler(t *testing.T) {
fall: fall.Root,
zones: []string{"."},
}
+ cnameTemplate := template{
+ regex: []*regexp.Regexp{regexp.MustCompile("example[.]net[.]")},
+ answer: []*gotmpl.Template{gotmpl.Must(gotmpl.New("answer").Parse("example.net 60 IN CNAME target.example.com"))},
+ qclass: dns.ClassANY,
+ qtype: dns.TypeANY,
+ fall: fall.Root,
+ zones: []string{"."},
+ }
tests := []struct {
tmpl template
@@ -254,6 +262,20 @@ func TestHandler(t *testing.T) {
return nil
},
},
+ {
+ name: "CNAMEWithoutUpstream",
+ tmpl: cnameTemplate,
+ qclass: dns.ClassINET,
+ qtype: dns.TypeA,
+ qname: "example.net.",
+ expectedCode: dns.RcodeSuccess,
+ verifyResponse: func(r *dns.Msg) error {
+ if len(r.Answer) != 1 {
+ return fmt.Errorf("expected 1 answer, got %v", len(r.Answer))
+ }
+ return nil
+ },
+ },
}
ctx := context.TODO()