// SPDX-FileCopyrightText: 2026 Progmasoft // SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Configuration; namespace Progmasoft.Progmaweb.Api.Tests; internal sealed class AccountApiFactory : WebApplicationFactory { protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.UseEnvironment("Testing"); builder.ConfigureAppConfiguration((_, configuration) => { configuration.AddInMemoryCollection(new Dictionary { ["AccountSessions:LifetimeHours"] = "2", ["AccountSessions:CookieName"] = "__Host-ProgmasoftSession", ["Authentication:Google:ClientId"] = "test-client.apps.googleusercontent.com", ["Authentication:Google:ClientSecret"] = "test-secret" }); }); } public HttpClient CreateAccountClient(bool handleCookies = true) => CreateClient( new WebApplicationFactoryClientOptions { AllowAutoRedirect = false, BaseAddress = new Uri("https://localhost"), HandleCookies = handleCookies }); }