[AZ-189] Fix e2e test run

Made-with: Cursor
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-04-16 06:45:38 +03:00
parent d320d6dd59
commit 9da34a594b
10 changed files with 43 additions and 42 deletions
+22 -21
View File
@@ -1,20 +1,30 @@
using System.ComponentModel.DataAnnotations;
using System.Net.Http.Headers;
using Microsoft.Extensions.Configuration;
using Xunit;
namespace Azaion.E2E.Helpers;
public sealed class TestSettings
{
[Required] public string ApiBaseUrl { get; init; } = null!;
[Required] public string AdminEmail { get; init; } = null!;
[Required] public string AdminPassword { get; init; } = null!;
[Required] public string UploaderEmail { get; init; } = null!;
[Required] public string UploaderPassword { get; init; } = null!;
[Required] public string JwtSecret { get; init; } = null!;
}
public sealed class TestFixture : IAsyncLifetime
{
private string _baseUrl = "";
public HttpClient HttpClient { get; private set; } = null!;
public string AdminToken { get; private set; } = "";
public string AdminEmail { get; private set; } = "";
public string AdminPassword { get; private set; } = "";
public string UploaderEmail { get; private set; } = "";
public string UploaderPassword { get; private set; } = "";
public string JwtSecret { get; private set; } = "";
public TestSettings Settings { get; private set; } = null!;
public string AdminEmail => Settings.AdminEmail;
public string AdminPassword => Settings.AdminPassword;
public string UploaderEmail => Settings.UploaderEmail;
public string UploaderPassword => Settings.UploaderPassword;
public string JwtSecret => Settings.JwtSecret;
public IConfiguration Configuration { get; private set; } = null!;
public async Task InitializeAsync()
@@ -25,20 +35,11 @@ public sealed class TestFixture : IAsyncLifetime
.AddEnvironmentVariables()
.Build();
_baseUrl = Configuration["ApiBaseUrl"]
?? throw new InvalidOperationException("Configuration value ApiBaseUrl is required.");
AdminEmail = Configuration["AdminEmail"]
?? throw new InvalidOperationException("Configuration value AdminEmail is required.");
AdminPassword = Configuration["AdminPassword"]
?? throw new InvalidOperationException("Configuration value AdminPassword is required.");
UploaderEmail = Configuration["UploaderEmail"]
?? throw new InvalidOperationException("Configuration value UploaderEmail is required.");
UploaderPassword = Configuration["UploaderPassword"]
?? throw new InvalidOperationException("Configuration value UploaderPassword is required.");
JwtSecret = Configuration["JwtSecret"]
?? throw new InvalidOperationException("Configuration value JwtSecret is required.");
Settings = Configuration.Get<TestSettings>()
?? throw new InvalidOperationException("Failed to bind TestSettings from configuration.");
Validator.ValidateObject(Settings, new ValidationContext(Settings), validateAllProperties: true);
var baseUri = new Uri(_baseUrl, UriKind.Absolute);
var baseUri = new Uri(Settings.ApiBaseUrl, UriKind.Absolute);
HttpClient = new HttpClient { BaseAddress = baseUri, Timeout = TimeSpan.FromMinutes(5) };
using var loginClient = CreateApiClient();
@@ -54,7 +55,7 @@ public sealed class TestFixture : IAsyncLifetime
public ApiClient CreateApiClient()
{
var client = new HttpClient { BaseAddress = new Uri(_baseUrl, UriKind.Absolute), Timeout = TimeSpan.FromMinutes(5) };
var client = new HttpClient { BaseAddress = new Uri(Settings.ApiBaseUrl, UriKind.Absolute), Timeout = TimeSpan.FromMinutes(5) };
return new ApiClient(client, disposeClient: true);
}