diff --git a/BTCPayServer.Tests/UnitTest1.cs b/BTCPayServer.Tests/UnitTest1.cs index 1b90ed83c..248ad9d66 100644 --- a/BTCPayServer.Tests/UnitTest1.cs +++ b/BTCPayServer.Tests/UnitTest1.cs @@ -3128,13 +3128,10 @@ namespace BTCPayServer.Tests var settings = tester.PayTester.GetService(); await settings.UpdateSetting(new PoliciesSettings() { CheckForNewVersions = true }); - var envMock = tester.PayTester.GetService(); - // modifying environment to simulate production - envMock.Environment.EnvironmentName = "Production"; + var mockEnv = tester.PayTester.GetService(); + var mockSender = tester.PayTester.GetService(); - var notificationSender = tester.PayTester.GetService(); - - var svc = new NewVersionCheckerHostedService(settings, envMock, notificationSender, new MockVersionFetcher()); + var svc = new NewVersionCheckerHostedService(settings, mockEnv, mockSender, new MockVersionFetcher()); await svc.ProcessVersionCheck(); // since last version present in database was null, it should've been updated with version mock returned diff --git a/BTCPayServer/HostedServices/NewVersionCheckerHostedService.cs b/BTCPayServer/HostedServices/NewVersionCheckerHostedService.cs index 752132218..131e65c64 100644 --- a/BTCPayServer/HostedServices/NewVersionCheckerHostedService.cs +++ b/BTCPayServer/HostedServices/NewVersionCheckerHostedService.cs @@ -39,7 +39,7 @@ namespace BTCPayServer.HostedServices public async Task ProcessVersionCheck() { var policies = await _settingsRepository.GetSettingAsync() ?? new PoliciesSettings(); - if (policies.CheckForNewVersions && !_env.IsDeveloping) + if (policies.CheckForNewVersions) { var tag = await _versionFetcher.Fetch(Cancellation); if (tag != null && tag != _env.Version) @@ -67,16 +67,21 @@ namespace BTCPayServer.HostedServices Task Fetch(CancellationToken cancellation); } - public class GithubVersionFetcher : IVersionFetcher + public class GithubVersionFetcher : IVersionFetcher, IDisposable { private readonly HttpClient _httpClient; - public GithubVersionFetcher() + public GithubVersionFetcher(IHttpClientFactory httpClientFactory) { - _httpClient = new HttpClient(); + _httpClient = httpClientFactory.CreateClient(nameof(GithubVersionFetcher)); _httpClient.DefaultRequestHeaders.Add("Accept", "application/vnd.github.v3+json"); _httpClient.DefaultRequestHeaders.Add("User-Agent", "BTCPayServer/NewVersionChecker"); } + public void Dispose() + { + _httpClient.Dispose(); + } + public async Task Fetch(CancellationToken cancellation) { const string url = "https://api.github.com/repos/btcpayserver/btcpayserver/releases/latest";