Add test for route building error propagation
This commit is contained in:
parent
0f329e4cd7
commit
5efd468cd1
|
|
@ -382,6 +382,38 @@ var _ = Describe("Proxy Suite", func() {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Context("multiUpstreamProxy errors", func() {
|
||||||
|
type proxyErrorTableInput struct {
|
||||||
|
upstreams options.UpstreamConfig
|
||||||
|
expectedError string
|
||||||
|
}
|
||||||
|
|
||||||
|
DescribeTable("NewProxy", func(in *proxyErrorTableInput) {
|
||||||
|
sigData := &options.SignatureData{Hash: crypto.SHA256, Key: "secret"}
|
||||||
|
|
||||||
|
writer := &pagewriter.WriterFuncs{
|
||||||
|
ProxyErrorFunc: func(rw http.ResponseWriter, _ *http.Request, _ error) {
|
||||||
|
rw.WriteHeader(502)
|
||||||
|
rw.Write([]byte("Proxy Error"))
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := NewProxy(in.upstreams, sigData, writer)
|
||||||
|
Expect(err).To(MatchError(in.expectedError))
|
||||||
|
},
|
||||||
|
Entry("regex matcher without rewrite target", &proxyErrorTableInput{
|
||||||
|
upstreams: options.UpstreamConfig{
|
||||||
|
Upstreams: []options.Upstream{{
|
||||||
|
ID: "api",
|
||||||
|
Path: "^/api/$",
|
||||||
|
URI: "http://example.com",
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
expectedError: `could not register http upstream "api": mux: path must start with a slash, got "^/api/$"`,
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
Context("sortByPathLongest", func() {
|
Context("sortByPathLongest", func() {
|
||||||
type sortByPathLongestTableInput struct {
|
type sortByPathLongestTableInput struct {
|
||||||
input []options.Upstream
|
input []options.Upstream
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue