Plugins: Fix flaky reverse proxy response tests (#96051)

tidy
This commit is contained in:
Will Browne
2024-11-11 14:35:42 +00:00
committed by GitHub
parent e8241636b8
commit 6bd1865749
+21 -4
View File
@@ -17,6 +17,10 @@ import (
"github.com/grafana/grafana/pkg/setting"
)
var (
responseHeaderTimeout = 1 * time.Second
)
func TestReverseProxy(t *testing.T) {
t.Run("When proxying a request should enforce request and response constraints", func(t *testing.T) {
var actualReq *http.Request
@@ -40,9 +44,15 @@ func TestReverseProxy(t *testing.T) {
req = req.WithContext(contexthandler.WithAuthHTTPHeaders(req.Context(), setting.NewCfg()))
req.Header.Set("Authorization", "val")
rp := NewReverseProxy(log.New("test"), func(req *http.Request) {
req.Header.Set("X-KEY", "value")
})
rp := NewReverseProxy(log.New("test"),
func(req *http.Request) {
req.Header.Set("X-KEY", "value")
},
// Set response header timeout to avoid random `net/http: timeout awaiting response headers` errors in CI
WithTransport(&http.Transport{
ResponseHeaderTimeout: responseHeaderTimeout,
}),
)
require.NotNil(t, rp)
require.NotNil(t, rp.ModifyResponse)
rp.ServeHTTP(rec, req)
@@ -85,6 +95,10 @@ func TestReverseProxy(t *testing.T) {
r.Header.Set("X-KEY2", "value2")
return nil
}),
// Set response header timeout to avoid random `net/http: timeout awaiting response headers` errors in CI
WithTransport(&http.Transport{
ResponseHeaderTimeout: responseHeaderTimeout,
}),
)
require.NotNil(t, rp)
require.NotNil(t, rp.ModifyResponse)
@@ -166,7 +180,6 @@ func TestReverseProxy(t *testing.T) {
})
t.Run("5xx response status codes should set downstream status source", func(t *testing.T) {
t.Skip("Skip for flaky test")
testCases := []struct {
status int
expectedSource requestmeta.StatusSource
@@ -199,6 +212,10 @@ func TestReverseProxy(t *testing.T) {
rp := NewReverseProxy(
log.New("test"),
func(req *http.Request) {},
// Set response header timeout to avoid random `net/http: timeout awaiting response headers errors in CI
WithTransport(&http.Transport{
ResponseHeaderTimeout: responseHeaderTimeout,
}),
)
require.NotNil(t, rp)
rp.ServeHTTP(rec, req)