diff --git a/src/Api/Program.cs b/src/Api/Program.cs index baeaab9fdbb4..51096693b544 100644 --- a/src/Api/Program.cs +++ b/src/Api/Program.cs @@ -6,15 +6,18 @@ public class Program { public static void Main(string[] args) { - Host + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) + { + return Host .CreateDefaultBuilder(args) .UseBitwardenSdk() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .AddSerilogFileLogging() - .Build() - .Run(); + .AddSerilogFileLogging(); } } diff --git a/test/Api.IntegrationTest/Platform/RelayPushRegistrationServiceTests.cs b/test/Api.IntegrationTest/Platform/RelayPushRegistrationServiceTests.cs index fa7a741b2797..11ccacec26fe 100644 --- a/test/Api.IntegrationTest/Platform/RelayPushRegistrationServiceTests.cs +++ b/test/Api.IntegrationTest/Platform/RelayPushRegistrationServiceTests.cs @@ -1,4 +1,4 @@ -using Bit.Api.IntegrationTest.Factories; +using Bit.Api.IntegrationTest.Factories; using Bit.Core.Enums; using Bit.Core.Platform.Installations; using Bit.Core.Platform.Push; diff --git a/test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs b/test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs index 2271611125db..eb192b64a904 100644 --- a/test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs +++ b/test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs @@ -15,6 +15,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using NSubstitute; @@ -122,6 +123,22 @@ public void UpdateConfiguration(string key, string? value) }); } + protected override IHostBuilder? CreateHostBuilder() + { + var builder = base.CreateHostBuilder(); + // Disable OTel in all test factories. UseBitwardenSdk() registers OTLP exporters that + // open gRPC channels with exponential-backoff retries; when the endpoint is unreachable + // (e.g. CI) the retry loop stalls response-body completion for ~136 s per request. + builder?.ConfigureAppConfiguration((_, config) => + { + config.AddInMemoryCollection(new Dictionary + { + { "OpenTelemetry:Enabled", "false" }, + }); + }); + return builder; + } + /// /// Configure the web host to use a SQLite in memory database /// @@ -169,8 +186,6 @@ protected override void ConfigureWebHost(IWebHostBuilder builder) .AddJsonFile("appsettings.json") .AddJsonFile("appsettings.Development.json"); - c.AddUserSecrets(typeof(Identity.Startup).Assembly, optional: true); - c.AddInMemoryCollection(config); });