diff --git a/tests/Tgstation.Server.Tests/Live/Instance/InstanceTest.cs b/tests/Tgstation.Server.Tests/Live/Instance/InstanceTest.cs index 0772133012..63b8798223 100644 --- a/tests/Tgstation.Server.Tests/Live/Instance/InstanceTest.cs +++ b/tests/Tgstation.Server.Tests/Live/Instance/InstanceTest.cs @@ -37,7 +37,7 @@ namespace Tgstation.Server.Tests.Live.Instance var byondTask = byondTest.Run(cancellationToken, out var firstInstall); var chatTask = chatTest.RunPreWatchdog(cancellationToken); - var repoLongJob = repoTest.RunLongClone(cancellationToken); + var repoLongJob = await repoTest.RunLongClone(cancellationToken); await dmTest.RunPreRepoClone(cancellationToken); await repoTest.AbortLongCloneAndCloneSomethingQuick(repoLongJob, cancellationToken); diff --git a/tests/Tgstation.Server.Tests/Live/Instance/RepositoryTest.cs b/tests/Tgstation.Server.Tests/Live/Instance/RepositoryTest.cs index bc644ddeab..c35ccd70dd 100644 --- a/tests/Tgstation.Server.Tests/Live/Instance/RepositoryTest.cs +++ b/tests/Tgstation.Server.Tests/Live/Instance/RepositoryTest.cs @@ -23,7 +23,7 @@ namespace Tgstation.Server.Tests.Live.Instance this.repositoryClient = repositoryClient ?? throw new ArgumentNullException(nameof(repositoryClient)); } - public async Task RunLongClone(CancellationToken cancellationToken) + public async Task> RunLongClone(CancellationToken cancellationToken) { var workingBranch = "master"; @@ -35,34 +35,40 @@ namespace Tgstation.Server.Tests.Live.Instance }; var clone = await repositoryClient.Clone(cloneRequest, cancellationToken); - await ApiAssert.ThrowsException(() => repositoryClient.Read(cancellationToken), ErrorCode.RepoCloning); - Assert.IsNotNull(clone); - Assert.AreEqual(cloneRequest.Origin, clone.Origin); - Assert.AreEqual(workingBranch, clone.Reference); - Assert.IsNull(clone.RevisionInformation); - Assert.IsNotNull(clone.ActiveJob); - // throwing this small jobs consistency test in here - await Task.Delay(TimeSpan.FromSeconds(15), cancellationToken); - var activeJobs = await JobsClient.ListActive(null, cancellationToken); - var allJobs = await JobsClient.List(null, cancellationToken); + return Rest(); - Assert.IsTrue(activeJobs.Any(x => x.Id == clone.ActiveJob.Id)); - Assert.IsTrue(allJobs.Any(x => x.Id == clone.ActiveJob.Id)); - - var targetActiveJob = activeJobs.First(x => x.Id == clone.ActiveJob.Id); - - if (!targetActiveJob.Progress.HasValue) + async Task Rest() { - // give it 15 more seconds - targetActiveJob = await WaitForJobProgress(targetActiveJob, 15, cancellationToken); - allJobs = await JobsClient.List(null, cancellationToken); + await ApiAssert.ThrowsException(() => repositoryClient.Read(cancellationToken), ErrorCode.RepoCloning); + Assert.IsNotNull(clone); + Assert.AreEqual(cloneRequest.Origin, clone.Origin); + Assert.AreEqual(workingBranch, clone.Reference); + Assert.IsNull(clone.RevisionInformation); + Assert.IsNotNull(clone.ActiveJob); + + // throwing this small jobs consistency test in here + await Task.Delay(TimeSpan.FromSeconds(15), cancellationToken); + var activeJobs = await JobsClient.ListActive(null, cancellationToken); + var allJobs = await JobsClient.List(null, cancellationToken); + + Assert.IsTrue(activeJobs.Any(x => x.Id == clone.ActiveJob.Id)); + Assert.IsTrue(allJobs.Any(x => x.Id == clone.ActiveJob.Id)); + + var targetActiveJob = activeJobs.First(x => x.Id == clone.ActiveJob.Id); + + if (!targetActiveJob.Progress.HasValue) + { + // give it 15 more seconds + targetActiveJob = await WaitForJobProgress(targetActiveJob, 15, cancellationToken); + allJobs = await JobsClient.List(null, cancellationToken); + } + + Assert.IsTrue(targetActiveJob.Progress.HasValue); + Assert.IsTrue(allJobs.First(x => x.Id == clone.ActiveJob.Id).Progress.HasValue); + + return clone.ActiveJob; } - - Assert.IsTrue(targetActiveJob.Progress.HasValue); - Assert.IsTrue(allJobs.First(x => x.Id == clone.ActiveJob.Id).Progress.HasValue); - - return clone.ActiveJob; } public async Task AbortLongCloneAndCloneSomethingQuick(Task longCloneJob, CancellationToken cancellationToken)