Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit ab49bb3

Browse files
Hopefully the last tweaks needed to make these tests more reliable
1 parent 862a2de commit ab49bb3

File tree

3 files changed

+129
-26
lines changed

3 files changed

+129
-26
lines changed

src/IntegrationTests/Events/RepositoryManagerTests.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ public void ShouldDetectBranchCreate()
246246
RepositoryManager.CreateBranch(new TaskResultDispatcher<string>(s => { }), "feature2/document2",
247247
"feature/document");
248248

249-
Thread.Sleep(1000);
249+
managerAutoResetEvent.OnLocalBranchListChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
250250

251251
Logger.Trace("Continue test");
252252

@@ -341,14 +341,17 @@ public void ShouldDetectGitPull()
341341
managerAutoResetEvent.OnRepositoryChanged.WaitOne(TimeSpan.FromSeconds(7)).Should().BeTrue();
342342
managerAutoResetEvent.OnActiveBranchChanged.WaitOne(TimeSpan.FromSeconds(7)).Should().BeTrue();
343343

344-
Logger.Trace("Continue test");
344+
WaitForNotBusy(managerAutoResetEvent, 3);
345+
WaitForNotBusy(managerAutoResetEvent, 3);
345346

346-
repositoryManagerListener.Received().OnRepositoryChanged(Args.GitStatus);
347-
result.AssertEqual(expected);
347+
Logger.Trace("Continue test");
348348

349349
repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool);
350350
RepositoryManager.IsBusy.Should().BeFalse();
351351

352+
repositoryManagerListener.Received().OnRepositoryChanged(Args.GitStatus);
353+
result.AssertEqual(expected);
354+
352355
repositoryManagerListener.Received(1).OnActiveBranchChanged();
353356
repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged();
354357
repositoryManagerListener.DidNotReceive().OnHeadChanged();
@@ -387,5 +390,14 @@ public void ShouldDetectGitFetch()
387390
repositoryManagerListener.DidNotReceive().OnRemoteOrTrackingChanged();
388391
repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock);
389392
}
393+
394+
private void WaitForNotBusy(RepositoryManagerAutoResetEvent managerAutoResetEvent, int seconds = 1)
395+
{
396+
if (RepositoryManager.IsBusy)
397+
{
398+
Logger.Trace("Waiting for activity", seconds);
399+
managerAutoResetEvent.OnIsBusyChanged.WaitOne(TimeSpan.FromSeconds(seconds));
400+
}
401+
}
390402
}
391403
}

0 commit comments

Comments
 (0)