diff --git a/Content.IntegrationTests/Tests/PostMapInitTest.cs b/Content.IntegrationTests/Tests/PostMapInitTest.cs index a3d5f075c1..5c843ffd83 100644 --- a/Content.IntegrationTests/Tests/PostMapInitTest.cs +++ b/Content.IntegrationTests/Tests/PostMapInitTest.cs @@ -30,6 +30,52 @@ namespace Content.IntegrationTests.Tests private const bool SkipTestMaps = true; private const string TestMapsPath = "/Maps/Test/"; + private static string[] Grids = + { + "/Maps/centcomm.yml", + "/Maps/Shuttles/cargo.yml", + "/Maps/Shuttles/emergency.yml", + "/Maps/infiltrator.yml", + }; + + /// + /// Asserts that specific files have been saved as grids and not maps. + /// + [Test, TestCaseSource(nameof(Grids))] + public async Task GridsLoadableTest(string mapFile) + { + await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true}); + var server = pairTracker.Pair.Server; + + var mapLoader = server.ResolveDependency(); + var mapManager = server.ResolveDependency(); + + await server.WaitPost(() => + { + var mapId = mapManager.CreateMap(); + try + { + mapLoader.LoadGrid(mapId, mapFile); + } + catch (Exception ex) + { + throw new Exception($"Failed to load map {mapFile}, was it saved as a map instead of a grid?", ex); + } + + try + { + mapManager.DeleteMap(mapId); + } + catch (Exception ex) + { + throw new Exception($"Failed to delete map {mapFile}", ex); + } + }); + await server.WaitRunTicks(1); + + await pairTracker.CleanReturnAsync(); + } + [Test] public async Task NoSavedPostMapInitTest() {