diff --git a/Content.IntegrationTests/Tests/PostMapInitTest.cs b/Content.IntegrationTests/Tests/PostMapInitTest.cs index 8429e3b740..a3d5f075c1 100644 --- a/Content.IntegrationTests/Tests/PostMapInitTest.cs +++ b/Content.IntegrationTests/Tests/PostMapInitTest.cs @@ -8,7 +8,10 @@ using Content.Client.Shuttles.Systems; using Content.Server.GameTicking; using Content.Server.Maps; using Content.Server.Shuttles.Components; +using Content.Server.Spawners.Components; using Content.Server.Station.Components; +using Content.Server.Station.Systems; +using Content.Shared.Roles; using NUnit.Framework; using Robust.Server.Maps; using Robust.Shared.ContentPack; @@ -127,6 +130,7 @@ namespace Content.IntegrationTests.Tests var protoManager = server.ResolveDependency(); var ticker = entManager.EntitySysManager.GetEntitySystem(); var shuttleSystem = entManager.EntitySysManager.GetEntitySystem(); + var stationJobsSystem = entManager.EntitySysManager.GetEntitySystem(); await server.WaitPost(() => { @@ -171,6 +175,23 @@ namespace Content.IntegrationTests.Tests mapManager.DeleteMap(shuttleMap); + // Test all availableJobs have spawnPoints + // This is done inside gamemap test because loading the map takes ages and we already have it. + var jobList = entManager.GetComponent(station).RoundStartJobList + .Where(x => x.Value != 0) + .Select(x => x.Key); + var spawnPoints = entManager.EntityQuery() + .Where(spawnpoint => spawnpoint.SpawnType == SpawnPointType.Job) + .Select(spawnpoint => spawnpoint.Job.ID) + .Distinct(); + List missingSpawnPoints = new() { }; + foreach (var spawnpoint in jobList.Except(spawnPoints)) + { + if (protoManager.Index(spawnpoint).SetPreference) + missingSpawnPoints.Add(spawnpoint); + } + Assert.That(missingSpawnPoints.Count() == 0, $"There is no spawnpoint for {String.Join(", ", missingSpawnPoints)} on {mapProto}."); + try { mapManager.DeleteMap(mapId); diff --git a/Resources/Maps/box.yml b/Resources/Maps/box.yml index 3f5798ee7a..855cd60642 100644 --- a/Resources/Maps/box.yml +++ b/Resources/Maps/box.yml @@ -230788,4 +230788,16 @@ entities: - pos: -42.5,1.5 parent: 8364 type: Transform +- uid: 25949 + type: SpawnPointServiceWorker + components: + - pos: 37.5,-7.5 + parent: 8364 + type: Transform +- uid: 25950 + type: SpawnPointServiceWorker + components: + - pos: 31.5,0.5 + parent: 8364 + type: Transform ... diff --git a/Resources/Maps/omega.yml b/Resources/Maps/omega.yml index b927a94152..33e51c4b35 100644 --- a/Resources/Maps/omega.yml +++ b/Resources/Maps/omega.yml @@ -97270,4 +97270,10 @@ entities: - pos: -20.5,10.5 parent: 0 type: Transform +- uid: 12386 + type: SpawnPointServiceWorker + components: + - pos: 4.5,-0.5 + parent: 0 + type: Transform ...