diff --git a/internal/arduino/cores/packagemanager/package_manager.go b/internal/arduino/cores/packagemanager/package_manager.go index d24ee377606..deb14931053 100644 --- a/internal/arduino/cores/packagemanager/package_manager.go +++ b/internal/arduino/cores/packagemanager/package_manager.go @@ -124,6 +124,7 @@ func (pmb *Builder) Build() *PackageManager { profile: pmb.profile, discoveryManager: pmb.discoveryManager, userAgent: pmb.userAgent, + downloaderConfig: pmb.downloaderConfig, } } diff --git a/internal/arduino/cores/packagemanager/package_manager_test.go b/internal/arduino/cores/packagemanager/package_manager_test.go index 92530af6dc3..daef6987191 100644 --- a/internal/arduino/cores/packagemanager/package_manager_test.go +++ b/internal/arduino/cores/packagemanager/package_manager_test.go @@ -17,6 +17,7 @@ package packagemanager import ( "fmt" + "net/http" "net/url" "os" "runtime" @@ -29,6 +30,7 @@ import ( "github.com/arduino/go-properties-orderedmap" "github.com/stretchr/testify/require" "go.bug.st/downloader/v2" + "go.bug.st/f" semver "go.bug.st/relaxed-semver" ) @@ -1025,3 +1027,20 @@ func TestRunScript(t *testing.T) { }) } } + +func TestCorrectlyUsesDownloaderConfig(t *testing.T) { + proxyURL := f.Must(url.Parse("http://proxy:test@test.test/404:42")) + + downloaderCfg := downloader.Config{ + HttpClient: http.Client{ + Transport: &http.Transport{ + Proxy: http.ProxyURL(proxyURL), + }, + Timeout: 123, + }, + } + pmb := NewBuilder(customHardware, customHardware, nil, customHardware, customHardware, "test", downloaderCfg) + pmb.LoadHardwareFromDirectory(customHardware) + pm := pmb.Build() + require.Equal(t, downloaderCfg, pm.downloaderConfig) +}