diff --git a/EconDataLens.Tests/DbReset.cs b/EconDataLens.Tests/DbReset.cs new file mode 100644 index 0000000..2e4257e --- /dev/null +++ b/EconDataLens.Tests/DbReset.cs @@ -0,0 +1,17 @@ +using EconDataLens.Data; +using Microsoft.EntityFrameworkCore; + +[SetUpFixture] +public class DbReset +{ + public static async Task RecreateDatabaseAsync(string connectionString) + { + var options = new DbContextOptionsBuilder() + .UseNpgsql(connectionString) + .Options; + + await using var ctx = new EconDataLensDbContext(options); + await ctx.Database.EnsureDeletedAsync(); + await ctx.Database.MigrateAsync(); + } +} diff --git a/EconDataLens.Tests/Smoke/DbSmokeTest.cs b/EconDataLens.Tests/Smoke/DbSmokeTest.cs index 12b22c3..bd4ffcc 100644 --- a/EconDataLens.Tests/Smoke/DbSmokeTest.cs +++ b/EconDataLens.Tests/Smoke/DbSmokeTest.cs @@ -1,4 +1,4 @@ -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using EconDataLens.Core.Entities.Cpi; using EconDataLens.Data; @@ -8,11 +8,14 @@ public class DbSmokeTests { private static EconDataLensDbContext CreateDb() { + var connectionString = PostgresFixture.ConnectionString; var opts = new DbContextOptionsBuilder() - .UseNpgsql(PostgresFixture.ConnectionString) + .UseNpgsql(connectionString) .UseSnakeCaseNamingConvention() .Options; + DbReset.RecreateDatabaseAsync(connectionString).GetAwaiter().GetResult(); + return new EconDataLensDbContext(opts); } @@ -33,4 +36,4 @@ public async Task Can_Migrate_And_Do_Basic_CRUD() db.CpiArea.RemoveRange(db.CpiArea.Where(a => a.AreaCode == "ZZZ0")); await db.SaveChangesAsync(); } -} \ No newline at end of file +}