diff options
Diffstat (limited to 'plugin/template/template_test.go')
-rw-r--r-- | plugin/template/template_test.go | 22 |
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() |