@@ -13,6 +13,18 @@ import (
1313 "time"
1414)
1515
16+ func newTestReverseProxy (t * testing.T , target * url.URL ) * httputil.ReverseProxy {
17+ t .Helper ()
18+
19+ proxy := httputil .NewSingleHostReverseProxy (target )
20+ transport := http .DefaultTransport .(* http.Transport ).Clone ()
21+ transport .DisableKeepAlives = true
22+ proxy .Transport = transport
23+ t .Cleanup (transport .CloseIdleConnections )
24+
25+ return proxy
26+ }
27+
1628func TestTracker_BasicByteTracking (t * testing.T ) {
1729 t .Parallel ()
1830
@@ -26,7 +38,7 @@ func TestTracker_BasicByteTracking(t *testing.T) {
2638
2739 // Create reverse proxy to backend
2840 backendURL , _ := url .Parse (backend .URL )
29- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
41+ proxy := newTestReverseProxy ( t , backendURL )
3042
3143 // Create tracker with 5 second window
3244 tracker := NewTracker (proxy , 5 )
@@ -77,7 +89,7 @@ func TestTracker_MultipleRequests(t *testing.T) {
7789
7890 // Create reverse proxy and tracker
7991 backendURL , _ := url .Parse (backend .URL )
80- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
92+ proxy := newTestReverseProxy ( t , backendURL )
8193 tracker := NewTracker (proxy , 5 )
8294
8395 frontend := httptest .NewServer (tracker )
@@ -140,7 +152,7 @@ func TestTracker_StreamingResponse(t *testing.T) {
140152
141153 // Create reverse proxy and tracker
142154 backendURL , _ := url .Parse (backend .URL )
143- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
155+ proxy := newTestReverseProxy ( t , backendURL )
144156 tracker := NewTracker (proxy , 5 )
145157
146158 frontend := httptest .NewServer (tracker )
@@ -201,7 +213,7 @@ func TestTracker_ConcurrentRequests(t *testing.T) {
201213
202214 // Create reverse proxy and tracker
203215 backendURL , _ := url .Parse (backend .URL )
204- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
216+ proxy := newTestReverseProxy ( t , backendURL )
205217 tracker := NewTracker (proxy , 5 )
206218
207219 frontend := httptest .NewServer (tracker )
@@ -256,7 +268,7 @@ func TestTracker_RollingWindow(t *testing.T) {
256268
257269 // Create reverse proxy and tracker with SHORT 2-second window
258270 backendURL , _ := url .Parse (backend .URL )
259- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
271+ proxy := newTestReverseProxy ( t , backendURL )
260272 tracker := NewTracker (proxy , 2 )
261273
262274 frontend := httptest .NewServer (tracker )
@@ -313,7 +325,7 @@ func TestTracker_LargePayloads(t *testing.T) {
313325
314326 // Create reverse proxy and tracker
315327 backendURL , _ := url .Parse (backend .URL )
316- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
328+ proxy := newTestReverseProxy ( t , backendURL )
317329 tracker := NewTracker (proxy , 5 )
318330
319331 frontend := httptest .NewServer (tracker )
@@ -383,7 +395,7 @@ func TestTracker_SpreadOver5Seconds(t *testing.T) {
383395
384396 // Create reverse proxy and tracker with 10-second window
385397 backendURL , _ := url .Parse (backend .URL )
386- proxy := httputil . NewSingleHostReverseProxy ( backendURL )
398+ proxy := newTestReverseProxy ( t , backendURL )
387399 tracker := NewTracker (proxy , 10 )
388400
389401 frontend := httptest .NewServer (tracker )
0 commit comments