Add test to check that there are no pending database model changes (#25762)

This commit is contained in:
DrSmugleaf
2024-03-01 20:10:49 -08:00
committed by GitHub
parent c38b44ea69
commit 2904ff421a
2 changed files with 17 additions and 1 deletions

View File

@@ -11,7 +11,6 @@ using Robust.Shared.Enums;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Network; using Robust.Shared.Network;
using Robust.Shared.Prototypes;
using Robust.UnitTesting; using Robust.UnitTesting;
namespace Content.IntegrationTests.Tests.Preferences namespace Content.IntegrationTests.Tests.Preferences
@@ -119,6 +118,17 @@ namespace Content.IntegrationTests.Tests.Preferences
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();
} }
[Test]
public async Task TestNoPendingDatabaseChanges()
{
var pair = await PoolManager.GetServerClient();
var server = pair.Server;
var db = GetDb(server);
Assert.That(async () => await db.HasPendingModelChanges(), Is.False,
"The database has pending model changes. Add a new migration to apply them. See https://learn.microsoft.com/en-us/ef/core/managing-schemas/migrations");
await pair.CleanReturnAsync();
}
private static NetUserId NewUserId() private static NetUserId NewUserId()
{ {
return new(Guid.NewGuid()); return new(Guid.NewGuid());

View File

@@ -1534,6 +1534,12 @@ INSERT INTO player_round (players_id, rounds_id) VALUES ({players[player]}, {id}
return time != null ? NormalizeDatabaseTime(time.Value) : time; return time != null ? NormalizeDatabaseTime(time.Value) : time;
} }
public async Task<bool> HasPendingModelChanges()
{
await using var db = await GetDb();
return db.DbContext.Database.HasPendingModelChanges();
}
protected abstract Task<DbGuard> GetDb([CallerMemberName] string? name = null); protected abstract Task<DbGuard> GetDb([CallerMemberName] string? name = null);
protected void LogDbOp(string? name) protected void LogDbOp(string? name)