]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add test to check that there are no pending database model changes (#25762)
authorDrSmugleaf <DrSmugleaf@users.noreply.github.com>
Sat, 2 Mar 2024 04:10:49 +0000 (20:10 -0800)
committerGitHub <noreply@github.com>
Sat, 2 Mar 2024 04:10:49 +0000 (15:10 +1100)
Content.IntegrationTests/Tests/Preferences/ServerDbSqliteTests.cs
Content.Server/Database/ServerDbBase.cs

index 6520072220b9580aa7c7b9c4f580c34890a89d98..c57504764dc2f0f7850d479bf88acb19a6f978d5 100644 (file)
@@ -11,7 +11,6 @@ using Robust.Shared.Enums;
 using Robust.Shared.Log;
 using Robust.Shared.Maths;
 using Robust.Shared.Network;
-using Robust.Shared.Prototypes;
 using Robust.UnitTesting;
 
 namespace Content.IntegrationTests.Tests.Preferences
@@ -119,6 +118,17 @@ namespace Content.IntegrationTests.Tests.Preferences
             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()
         {
             return new(Guid.NewGuid());
index fe42d73ae95016f9cd07863e1d73163050edad97..ed22c66360a948752adfca5ff5488cb494df6509 100644 (file)
@@ -1534,6 +1534,12 @@ INSERT INTO player_round (players_id, rounds_id) VALUES ({players[player]}, {id}
             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 void LogDbOp(string? name)