diff --git a/src/GitHub.Api/Git/RepositoryManager.cs b/src/GitHub.Api/Git/RepositoryManager.cs index 238a2dc09..14cfac99d 100644 --- a/src/GitHub.Api/Git/RepositoryManager.cs +++ b/src/GitHub.Api/Git/RepositoryManager.cs @@ -460,6 +460,9 @@ private void RefreshConfigData(bool resetConfig = false) LoadBranchesFromConfig(); LoadRemotesFromConfig(); + OnLocalBranchListChanged?.Invoke(); + OnRemoteBranchListChanged?.Invoke(); + OnActiveBranchChanged?.Invoke(GetActiveBranch()); OnActiveRemoteChanged?.Invoke(GetActiveRemote()); } diff --git a/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs b/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs index c8d84ebd2..58513519a 100644 --- a/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs +++ b/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs @@ -301,6 +301,8 @@ public async Task ShouldDetectChangesToRemotes() await RepositoryManager.RemoteRemove("origin").StartAsAsync(); await TaskManager.Wait(); RepositoryManager.WaitForEvents(); + WaitForNotBusy(repositoryManagerEvents); + repositoryManagerEvents.OnRemoteBranchListChanged.WaitOne(TimeSpan.FromSeconds(1)); Environment.Repository.CurrentRemote.HasValue.Should().BeFalse(); @@ -310,7 +312,7 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); + repositoryManagerListener.Received().OnLocalBranchListChanged(); repositoryManagerListener.Received().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); @@ -321,6 +323,8 @@ public async Task ShouldDetectChangesToRemotes() await RepositoryManager.RemoteAdd("origin", "https://github.com/EvilShana/IOTestsRepo.git").StartAsAsync(); await TaskManager.Wait(); RepositoryManager.WaitForEvents(); + WaitForNotBusy(repositoryManagerEvents); + repositoryManagerEvents.OnRemoteBranchListChanged.WaitOne(TimeSpan.FromSeconds(1)); Environment.Repository.CurrentRemote.HasValue.Should().BeTrue(); Environment.Repository.CurrentRemote.Value.Name.Should().Be("origin"); @@ -332,8 +336,8 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); - repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); + repositoryManagerListener.Received().OnLocalBranchListChanged(); + repositoryManagerListener.Received().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); } @@ -422,7 +426,7 @@ public async Task ShouldUpdateCloneUrlIfRemoteIsDeleted() repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); + repositoryManagerListener.Received().OnLocalBranchListChanged(); repositoryManagerListener.Received().OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); @@ -443,8 +447,8 @@ public async Task ShouldUpdateCloneUrlIfRemoteIsDeleted() repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); - repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); + repositoryManagerListener.Received().OnLocalBranchListChanged(); + repositoryManagerListener.Received().OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); } diff --git a/src/tests/IntegrationTests/Events/RepositoryWatcherTests.cs b/src/tests/IntegrationTests/Events/RepositoryWatcherTests.cs index 00a7f4a2d..6427fac6c 100644 --- a/src/tests/IntegrationTests/Events/RepositoryWatcherTests.cs +++ b/src/tests/IntegrationTests/Events/RepositoryWatcherTests.cs @@ -44,7 +44,7 @@ public async Task ShouldDetectFileChanges() Logger.Trace("Continue test"); repositoryWatcherListener.DidNotReceive().ConfigChanged(); - repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String); + repositoryWatcherListener.DidNotReceive().HeadChanged(); repositoryWatcherListener.Received().IndexChanged(); repositoryWatcherListener.DidNotReceive().LocalBranchCreated(Args.String); repositoryWatcherListener.DidNotReceive().LocalBranchDeleted(Args.String); diff --git a/src/tests/IntegrationTests/IntegrationTests.csproj b/src/tests/IntegrationTests/IntegrationTests.csproj index 506d55975..6d5c2fbdf 100644 --- a/src/tests/IntegrationTests/IntegrationTests.csproj +++ b/src/tests/IntegrationTests/IntegrationTests.csproj @@ -122,8 +122,8 @@ sfw_x64.dll PreserveNewest - - sfw_x64.dll.meta + + pthreadVC2.dll PreserveNewest