using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; using AsbCloudApp.Data.User; using AsbCloudDb; using AsbCloudDb.Model; using Microsoft.Extensions.DependencyInjection; using Xunit; namespace AsbCloudWebApi.Tests.IntegrationTests; public abstract class BaseIntegrationTest : IClassFixture { private readonly IAsbCloudDbContext dbContext; protected readonly HttpClient httpClient; protected readonly IServiceScope scope; protected BaseIntegrationTest(TestWebApplicationFactory factory) { scope = factory.Services.CreateScope(); httpClient = factory.CreateClient(); dbContext = scope.ServiceProvider.GetRequiredService(); dbContext.Database.EnsureCreatedAndMigrated(); } protected void SetToken(string token) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); } //TODO: поправить метод регистрации, сделать этот метод следующим образом: //1. Пройти регистрацию //2. Залогиниться под новым логином и паролем. Тестить всё под учёткой dev -- это неправильно, но пока так. // Пока используется jwt токен dev, пока так захардкожено protected Task RegisterUserAsync() { var authToken = new UserTokenDto { Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiZGV2IiwiaWRDb21wYW55IjoiMSIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6InJvb3QiLCJuYmYiOjE3MDIzNjg3NzksImV4cCI6MTczMzkyNjM3OSwiaXNzIjoiYSIsImF1ZCI6ImEifQ.zMJHgoEkfifR28vIPxtABvznf8NFJjk33E9fxNZTwGM" }; return Task.FromResult(authToken); } }