@@ -59,7 +59,7 @@ func TestParseDailyBuildNumber(t *testing.T) {
5959}
6060
6161func TestBuildDownloadURL (t * testing.T ) {
62- m := NewManager (nil )
62+ m := NewManager (nil , nil )
6363
6464 tests := []struct {
6565 name string
@@ -136,7 +136,7 @@ func TestPackageManagerUninstallCmd(t *testing.T) {
136136}
137137
138138func TestBuildVersionInfoFromCache_Stable (t * testing.T ) {
139- m := NewManager (nil )
139+ m := NewManager (nil , nil )
140140
141141 tests := []struct {
142142 name string
@@ -168,7 +168,7 @@ func TestBuildVersionInfoFromCache_Stable(t *testing.T) {
168168}
169169
170170func TestBuildVersionInfoFromCache_Daily (t * testing.T ) {
171- m := NewManager (nil )
171+ m := NewManager (nil , nil )
172172
173173 // Dev build (0.0.0-dev.0) can't parse a daily build number,
174174 // so it always assumes update available
@@ -186,7 +186,7 @@ func TestBuildVersionInfoFromCache_Daily(t *testing.T) {
186186}
187187
188188func TestBuildVersionInfoFromCache_InvalidVersion (t * testing.T ) {
189- m := NewManager (nil )
189+ m := NewManager (nil , nil )
190190 cache := & CacheFile {
191191 Channel : "stable" ,
192192 Version : "not-a-version" ,
@@ -197,25 +197,27 @@ func TestBuildVersionInfoFromCache_InvalidVersion(t *testing.T) {
197197 require .Contains (t , err .Error (), "parse" )
198198}
199199
200+ // testClientWithRewrite creates an HTTP client that redirects all requests to the given test server URL.
201+ func testClientWithRewrite (targetURL string ) * http.Client {
202+ return & http.Client {
203+ Transport : & urlRewriteTransport {
204+ base : http .DefaultTransport ,
205+ targetURL : targetURL ,
206+ },
207+ }
208+ }
209+
200210func TestCheckForUpdate_StableHTTP (t * testing.T ) {
201211 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
202212 w .WriteHeader (http .StatusOK )
203213 fmt .Fprint (w , "999.0.0" )
204214 }))
205215 defer server .Close ()
206216
207- // Override the default client transport to redirect requests to test server
208- origTransport := http .DefaultTransport
209- http .DefaultTransport = & urlRewriteTransport {
210- base : origTransport ,
211- targetURL : server .URL ,
212- }
213- defer func () { http .DefaultTransport = origTransport }()
214-
215217 tempDir := t .TempDir ()
216218 t .Setenv ("AZD_CONFIG_DIR" , tempDir )
217219
218- m := NewManager (nil )
220+ m := NewManager (nil , testClientWithRewrite ( server . URL ) )
219221 cfg := & UpdateConfig {Channel : ChannelStable }
220222
221223 info , err := m .CheckForUpdate (context .Background (), cfg , true )
@@ -232,17 +234,10 @@ func TestCheckForUpdate_DailyHTTP(t *testing.T) {
232234 }))
233235 defer server .Close ()
234236
235- origTransport := http .DefaultTransport
236- http .DefaultTransport = & urlRewriteTransport {
237- base : origTransport ,
238- targetURL : server .URL ,
239- }
240- defer func () { http .DefaultTransport = origTransport }()
241-
242237 tempDir := t .TempDir ()
243238 t .Setenv ("AZD_CONFIG_DIR" , tempDir )
244239
245- m := NewManager (nil )
240+ m := NewManager (nil , testClientWithRewrite ( server . URL ) )
246241 cfg := & UpdateConfig {Channel : ChannelDaily }
247242
248243 info , err := m .CheckForUpdate (context .Background (), cfg , true )
@@ -259,17 +254,10 @@ func TestCheckForUpdate_HTTPError(t *testing.T) {
259254 }))
260255 defer server .Close ()
261256
262- origTransport := http .DefaultTransport
263- http .DefaultTransport = & urlRewriteTransport {
264- base : origTransport ,
265- targetURL : server .URL ,
266- }
267- defer func () { http .DefaultTransport = origTransport }()
268-
269257 tempDir := t .TempDir ()
270258 t .Setenv ("AZD_CONFIG_DIR" , tempDir )
271259
272- m := NewManager (nil )
260+ m := NewManager (nil , testClientWithRewrite ( server . URL ) )
273261 cfg := & UpdateConfig {Channel : ChannelStable }
274262
275263 _ , err := m .CheckForUpdate (context .Background (), cfg , true )
@@ -289,7 +277,7 @@ func TestCheckForUpdate_UsesCache(t *testing.T) {
289277 }
290278 require .NoError (t , SaveCache (cache ))
291279
292- m := NewManager (nil )
280+ m := NewManager (nil , nil )
293281 cfg := & UpdateConfig {Channel : ChannelStable }
294282
295283 // ignoreCache=false should use the cache (no HTTP call needed)
@@ -303,7 +291,7 @@ func TestCheckForUpdate_InvalidChannel(t *testing.T) {
303291 tempDir := t .TempDir ()
304292 t .Setenv ("AZD_CONFIG_DIR" , tempDir )
305293
306- m := NewManager (nil )
294+ m := NewManager (nil , nil )
307295 cfg := & UpdateConfig {Channel : Channel ("nightly" )}
308296
309297 _ , err := m .CheckForUpdate (context .Background (), cfg , true )
@@ -317,7 +305,7 @@ func TestUpdateViaPackageManager_Success(t *testing.T) {
317305 return strings .Contains (command , "brew upgrade azd" )
318306 }).Respond (exec .NewRunResult (0 , "Updated azd" , "" ))
319307
320- m := NewManager (mockRunner )
308+ m := NewManager (mockRunner , nil )
321309 var buf bytes.Buffer
322310
323311 err := m .updateViaPackageManager (context .Background (), "brew" , []string {"upgrade" , "azd" }, & buf )
@@ -331,7 +319,7 @@ func TestUpdateViaPackageManager_Failure(t *testing.T) {
331319 return strings .Contains (command , "brew upgrade azd" )
332320 }).Respond (exec .NewRunResult (1 , "" , "Error: no such formula" ))
333321
334- m := NewManager (mockRunner )
322+ m := NewManager (mockRunner , nil )
335323 var buf bytes.Buffer
336324
337325 err := m .updateViaPackageManager (context .Background (), "brew" , []string {"upgrade" , "azd" }, & buf )
@@ -348,7 +336,7 @@ func TestUpdateViaPackageManager_CommandError(t *testing.T) {
348336 return true
349337 }).SetError (fmt .Errorf ("command not found: brew" ))
350338
351- m := NewManager (mockRunner )
339+ m := NewManager (mockRunner , nil )
352340 var buf bytes.Buffer
353341
354342 err := m .updateViaPackageManager (context .Background (), "brew" , []string {"upgrade" , "azd" }, & buf )
@@ -360,7 +348,7 @@ func TestUpdateViaPackageManager_CommandError(t *testing.T) {
360348}
361349
362350func TestVerifyCodeSignature_NilRunner (t * testing.T ) {
363- m := NewManager (nil )
351+ m := NewManager (nil , nil )
364352 err := m .verifyCodeSignature (context .Background (), "/some/binary" , io .Discard )
365353 require .NoError (t , err , "should skip when no command runner" )
366354}
@@ -620,7 +608,7 @@ func TestDownloadFile(t *testing.T) {
620608 tempDir := t .TempDir ()
621609 destPath := filepath .Join (tempDir , "downloaded" )
622610
623- m := NewManager (nil )
611+ m := NewManager (nil , nil )
624612 err := m .downloadFile (context .Background (), server .URL + "/azd.zip" , destPath , io .Discard )
625613 require .NoError (t , err )
626614
@@ -638,7 +626,7 @@ func TestDownloadFile_HTTPError(t *testing.T) {
638626 tempDir := t .TempDir ()
639627 destPath := filepath .Join (tempDir , "downloaded" )
640628
641- m := NewManager (nil )
629+ m := NewManager (nil , nil )
642630 err := m .downloadFile (context .Background (), server .URL + "/missing.zip" , destPath , io .Discard )
643631 require .Error (t , err )
644632 require .Contains (t , err .Error (), "404" )
0 commit comments