@@ -1,6 +1,7 @@
11package app
22
33import (
4+ "errors"
45 "html/template"
56 "io/ioutil"
67 "net/http/httptest"
@@ -10,19 +11,22 @@ import (
1011)
1112
1213var _ = Describe("Error Page", func() {
14+ var errorPage *ErrorPage
15+
16+ BeforeEach(func() {
17+ tmpl, err := template.New("").Parse("{{.Title}} {{.Message}} {{.ProxyPrefix}} {{.StatusCode}} {{.Redirect}} {{.Footer}} {{.Version}}")
18+ Expect(err).ToNot(HaveOccurred())
19+
20+ errorPage = &ErrorPage{
21+ Template: tmpl,
22+ ProxyPrefix: "/prefix/",
23+ Footer: "Custom Footer Text",
24+ Version: "v0.0.0-test",
25+ }
26+ })
1327
1428 Context("Render", func() {
1529 It("Writes the template to the response writer", func() {
16− tmpl, err := template.New("").Parse("{{.Title}} {{.Message}} {{.ProxyPrefix}} {{.StatusCode}} {{.Redirect}} {{.Footer}} {{.Version}}")
17− Expect(err).ToNot(HaveOccurred())
18−
19− errorPage := &ErrorPage{
20− Template: tmpl,
21− ProxyPrefix: "/prefix/",
22− Footer: "Custom Footer Text",
23− Version: "v0.0.0-test",
24− }
25−
2630 recorder := httptest.NewRecorder()
2731 errorPage.Render(recorder, 403, "/redirect", "Access Denied")
2832
@@ -32,4 +36,15 @@ var _ = Describe("Error Page", func() {
3236 })
3337 })
3438
39+ Context("ProxyErrorHandler", func() {
40+ It("Writes a bad gateway error the response writer", func() {
41+ req := httptest.NewRequest("", "/bad-gateway", nil)
42+ recorder := httptest.NewRecorder()
43+ errorPage.ProxyErrorHandler(recorder, req, errors.New("some upstream error"))
44+
45+ body, err := ioutil.ReadAll(recorder.Result().Body)
46+ Expect(err).ToNot(HaveOccurred())
47+ Expect(string(body)).To(Equal("Bad Gateway Error proxying to upstream server /prefix/ 502 Custom Footer Text v0.0.0-test"))
48+ })
49+ })
3550})