diff --git a/Content.IntegrationTests/SaveLoadSaveTest.cs b/Content.IntegrationTests/SaveLoadSaveTest.cs
index 3d73f5566e..c6bc8adede 100644
--- a/Content.IntegrationTests/SaveLoadSaveTest.cs
+++ b/Content.IntegrationTests/SaveLoadSaveTest.cs
@@ -2,6 +2,7 @@ using System.IO;
using System.Threading.Tasks;
using NUnit.Framework;
using Robust.Server.Interfaces.Maps;
+using Robust.Server.Interfaces.Timing;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Resources;
using Robust.Shared.Map;
@@ -50,5 +51,57 @@ namespace Content.IntegrationTests
Assert.That(one, Is.EqualTo(two));
}
+
+ ///
+ /// Loads the default map, runs it for 5 ticks, then assert that it did not change.
+ ///
+ [Test]
+ public async Task LoadSaveTicksSaveStationStation()
+ {
+ var server = StartServer();
+ await server.WaitIdleAsync();
+ var mapLoader = server.ResolveDependency();
+ var mapManager = server.ResolveDependency();
+ var pauseMgr = server.ResolveDependency();
+
+ IMapGrid grid = default;
+
+ // Load stationstation.yml as uninitialized map, and save it to ensure it's up to date.
+ server.Post(() =>
+ {
+ var map = mapManager.CreateMap();
+ pauseMgr.AddUninitializedMap(map);
+ grid = mapLoader.LoadBlueprint(map, "Maps/stationstation.yml");
+ mapLoader.SaveBlueprint(grid.Index, "load save ticks save 1.yml");
+ });
+
+ // Run 5 ticks.
+ server.RunTicks(5);
+
+ server.Post(() =>
+ {
+ mapLoader.SaveBlueprint(grid.Index, "load save ticks save 2.yml");
+ });
+
+ await server.WaitIdleAsync();
+ var userData = server.ResolveDependency().UserData;
+
+ string one;
+ string two;
+
+ using (var stream = userData.Open(new ResourcePath("load save ticks save 1.yml"), FileMode.Open))
+ using (var reader = new StreamReader(stream))
+ {
+ one = reader.ReadToEnd();
+ }
+
+ using (var stream = userData.Open(new ResourcePath("load save ticks save 2.yml"), FileMode.Open))
+ using (var reader = new StreamReader(stream))
+ {
+ two = reader.ReadToEnd();
+ }
+
+ Assert.That(one, Is.EqualTo(two));
+ }
}
}