diff --git a/Content.IntegrationTests/ContentIntegrationTest.cs b/Content.IntegrationTests/ContentIntegrationTest.cs index 85184d6f65..ed2986ca79 100644 --- a/Content.IntegrationTests/ContentIntegrationTest.cs +++ b/Content.IntegrationTests/ContentIntegrationTest.cs @@ -129,19 +129,26 @@ namespace Content.IntegrationTests return grid; } - protected async Task WaitUntil(IntegrationInstance instance, Func func, int tickStep = 10, int maxTicks = 600) + protected async Task WaitUntil(IntegrationInstance instance, Func func, int maxTicks = 600, int tickStep = 1) { var ticksAwaited = 0; bool passed; + await instance.WaitIdleAsync(); + while (!(passed = func()) && ticksAwaited < maxTicks) { - await instance.WaitIdleAsync(); - instance.RunTicks(tickStep); - ticksAwaited += tickStep; - } + var ticksToRun = tickStep; - await instance.WaitIdleAsync(); + if (ticksAwaited + tickStep > maxTicks) + { + ticksToRun = maxTicks - ticksAwaited; + } + + await instance.WaitRunTicks(ticksToRun); + + ticksAwaited += ticksToRun; + } Assert.That(passed); } diff --git a/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs b/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs index 1b665e123c..f3f4867e1b 100644 --- a/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs +++ b/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs @@ -1,4 +1,5 @@ -using Content.Server.GlobalVerbs; +using System.Threading.Tasks; +using Content.Server.GlobalVerbs; using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using NUnit.Framework; @@ -14,14 +15,11 @@ namespace Content.IntegrationTests.Tests.Commands public class RejuvenateTest : ContentIntegrationTest { [Test] - public void RejuvenateDeadTest() + public async Task RejuvenateDeadTest() { var server = StartServerDummyTicker(); - IEntity human = null; - IDamageableComponent damageable = null; - - server.Assert(() => + await server.WaitAssertion(() => { var mapManager = IoCManager.Resolve(); @@ -29,10 +27,10 @@ namespace Content.IntegrationTests.Tests.Commands var entityManager = IoCManager.Resolve(); - human = entityManager.SpawnEntity("HumanMob_Content", MapCoordinates.Nullspace); + var human = entityManager.SpawnEntity("HumanMob_Content", MapCoordinates.Nullspace); // Sanity check - Assert.True(human.TryGetComponent(out damageable)); + Assert.True(human.TryGetComponent(out IDamageableComponent damageable)); Assert.That(damageable.CurrentState, Is.EqualTo(DamageState.Alive)); // Kill the entity