feat(tests): add a test case for proxying to sub-URI

This commit is contained in:
Łukasz Mierzwa
2018-10-24 21:35:03 +01:00
parent 380022f01f
commit 3a66080e9d

View File

@@ -224,3 +224,34 @@ func TestProxyHeaders(t *testing.T) {
}
}
}
func TestProxyToSubURIAlertmanager(t *testing.T) {
httpmock.Activate()
defer httpmock.DeactivateAndReset()
r := ginTestEngine()
am, err := alertmanager.NewAlertmanager(
"suburi",
"http://alertmanager.example.com/suburi",
alertmanager.WithRequestTimeout(time.Second*5),
alertmanager.WithProxy(true),
)
if err != nil {
t.Error(err)
}
err = setupRouterProxyHandlers(r, am)
if err != nil {
t.Errorf("Failed to setup proxy for Alertmanager %s: %s", am.Name, err)
}
httpmock.RegisterResponder("POST", "http://alertmanager.example.com/suburi/api/v1/silences", func(req *http.Request) (*http.Response, error) {
return httpmock.NewStringResponse(200, "ok"), nil
})
req := httptest.NewRequest("POST", "/proxy/alertmanager/suburi/api/v1/silences", nil)
resp := newCloseNotifyingRecorder()
r.ServeHTTP(resp, req)
if resp.Code != 200 {
t.Errorf("Got response code %d instead of 200", resp.Code)
}
}