From: ElectroJr Date: Mon, 23 Dec 2024 01:22:27 +0000 (+1300) Subject: Fix NoSavedPostMapInitTest X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=37c843328f964233a5e6690468729928eb05c0b4;p=space-station-14.git Fix NoSavedPostMapInitTest --- diff --git a/Content.IntegrationTests/Tests/PostMapInitTest.cs b/Content.IntegrationTests/Tests/PostMapInitTest.cs index f7562d934d..0a48730d54 100644 --- a/Content.IntegrationTests/Tests/PostMapInitTest.cs +++ b/Content.IntegrationTests/Tests/PostMapInitTest.cs @@ -111,12 +111,15 @@ namespace Content.IntegrationTests.Tests var server = pair.Server; var resourceManager = server.ResolveDependency(); + var loader = server.System(); + var mapFolder = new ResPath("/Maps"); var maps = resourceManager .ContentFindFiles(mapFolder) .Where(filePath => filePath.Extension == "yml" && !filePath.Filename.StartsWith(".", StringComparison.Ordinal)) .ToArray(); + var v7Maps = new List(); foreach (var map in maps) { var rootedPath = map.ToRootedPath(); @@ -139,10 +142,41 @@ namespace Content.IntegrationTests.Tests var root = yamlStream.Documents[0].RootNode; var meta = root["meta"]; - var postMapInit = meta["postmapinit"].AsBool(); + var version = meta["format"].AsInt(); + + if (version >= 7) + { + v7Maps.Add(map); + continue; + } + var postMapInit = meta["postmapinit"].AsBool(); Assert.That(postMapInit, Is.False, $"Map {map.Filename} was saved postmapinit"); } + + var deps = server.ResolveDependency().DependencyCollection; + foreach (var map in v7Maps) + { + if (!loader.TryReadFile(map, out var data)) + { + Assert.Fail($"Failed to read {map}"); + continue; + } + + var reader = new EntityDeserializer(deps, data, DeserializationOptions.Default); + if (!reader.TryProcessData()) + { + Assert.Fail($"Failed to process {map}"); + continue; + } + + foreach (var mapId in reader.MapYamlIds) + { + var mapData = reader.YamlEntities[mapId]; + Assert.That(!mapData.PostInit, $"Map {map.Filename} contains a postmapinit map with yaml id: {mapId}"); + } + } + await pair.CleanReturnAsync(); }