From a0afac6e07c194534440dae1032c0403d98aae5f Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Thu, 23 Jul 2026 15:30:04 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=B4=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B9=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RequestTypePostgresTests.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 backend/tests/Tnsu.ApprovalRoute.IntegrationTests/RequestTypePostgresTests.cs diff --git a/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/RequestTypePostgresTests.cs b/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/RequestTypePostgresTests.cs new file mode 100644 index 0000000..43f4131 --- /dev/null +++ b/backend/tests/Tnsu.ApprovalRoute.IntegrationTests/RequestTypePostgresTests.cs @@ -0,0 +1,40 @@ +using Microsoft.EntityFrameworkCore; +using Tnsu.ApprovalRoute.Domain.Entities; +using Tnsu.ApprovalRoute.Infrastructure.Persistence; + +namespace Tnsu.ApprovalRoute.IntegrationTests; + +public class RequestTypePostgresTests +{ + private static string ConnectionString => + Environment.GetEnvironmentVariable("TEST_POSTGRES_CONNECTION") + ?? "Host=localhost;Port=5435;Database=tnsu_approval_route;Username=tnsu_approval_route;Password=tnsu_approval_route"; + + [Fact] + public async Task CanInsertAndReadBack_RealPostgres() + { + var options = new DbContextOptionsBuilder() + .UseNpgsql(ConnectionString) + .UseSnakeCaseNamingConvention() + .Options; + + await using var db = new ApprovalRouteDbContext(options); + await db.Database.MigrateAsync(); + + // Транзакция без коммита — тест не оставляет данных в базе после себя. + await using var transaction = await db.Database.BeginTransactionAsync(); + + var entity = new RequestType { Name = "Integration test type", PageUrl = "/integration-test" }; + db.RequestTypes.Add(entity); + await db.SaveChangesAsync(); + + db.ChangeTracker.Clear(); + var loaded = await db.RequestTypes.AsNoTracking().FirstOrDefaultAsync(x => x.Id == entity.Id); + + Assert.NotNull(loaded); + Assert.Equal("Integration test type", loaded.Name); + Assert.Equal("/integration-test", loaded.PageUrl); + + await transaction.RollbackAsync(); + } +}