chore(ui): remove IWorkerClient.MergeProgressEvent forwarder
Group C of the operation-feedback batch is fully merged; the two consumers (DetailsIslandViewModel.ApproveReviewAsync, MergeModalViewModel) now handle the verifying phase from the generic OperationProgressEvent handler instead of a separate forwarder event.
This commit is contained in:
@@ -35,7 +35,6 @@ public abstract class StubWorkerClient : IWorkerClient
|
||||
public event Action<string>? RefineStartedEvent;
|
||||
public event Action<string, bool, string?>? RefineFinishedEvent;
|
||||
public event Action<string, string, int, int>? OperationProgressEvent;
|
||||
public event Action<string, string, int>? MergeProgressEvent;
|
||||
public event Action<string, string>? PlanningMergeStartedEvent;
|
||||
public event Action<string, string>? PlanningSubtaskMergedEvent;
|
||||
public event Action<string, string, IReadOnlyList<string>, bool>? PlanningMergeConflictEvent;
|
||||
@@ -64,7 +63,6 @@ public abstract class StubWorkerClient : IWorkerClient
|
||||
public void RaisePlanningMergeConflict(string planningTaskId, string subtaskId, IReadOnlyList<string> files, bool externallyDriven)
|
||||
=> PlanningMergeConflictEvent?.Invoke(planningTaskId, subtaskId, files, externallyDriven);
|
||||
public void RaiseOperationProgress(string opKey, string phase, int current, int total) => OperationProgressEvent?.Invoke(opKey, phase, current, total);
|
||||
public void RaiseMergeProgress(string taskId, string phase, int elapsedSeconds) => MergeProgressEvent?.Invoke(taskId, phase, elapsedSeconds);
|
||||
public void RaisePlanningMergeStarted(string planningTaskId, string targetBranch) => PlanningMergeStartedEvent?.Invoke(planningTaskId, targetBranch);
|
||||
public void RaisePlanningMergeAborted(string planningTaskId, string? reason = null) => PlanningMergeAbortedEvent?.Invoke(planningTaskId, reason);
|
||||
public void RaisePlanningCompleted(string planningTaskId) => PlanningCompletedEvent?.Invoke(planningTaskId);
|
||||
|
||||
@@ -170,14 +170,6 @@ public class DetailsIslandReviewActionsTests : IDisposable
|
||||
public override Task<MergeResultDto?> ApproveReviewAsync(string taskId, string targetBranch) => Gate.Task;
|
||||
}
|
||||
|
||||
private static int MergeProgressSubscriberCount(StubWorkerClient worker)
|
||||
{
|
||||
var field = typeof(StubWorkerClient).GetField("MergeProgressEvent",
|
||||
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||
var del = (Delegate?)field!.GetValue(worker);
|
||||
return del?.GetInvocationList().Length ?? 0;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ApproveReview_SetsIsRunning_AndLocksTheButton_WhileThePendingCallIsInFlight()
|
||||
{
|
||||
@@ -209,10 +201,10 @@ public class DetailsIslandReviewActionsTests : IDisposable
|
||||
var approve = vm.ApproveReviewCommand.ExecuteAsync(null);
|
||||
var merging = vm.ApproveOp.Label;
|
||||
|
||||
worker.RaiseMergeProgress("some-other-task", "verifying", 30);
|
||||
worker.RaiseOperationProgress("some-other-task", "verifying", 30, 0);
|
||||
Assert.Equal(merging, vm.ApproveOp.Label);
|
||||
|
||||
worker.RaiseMergeProgress("task-approve-2", "verifying", 30);
|
||||
worker.RaiseOperationProgress("task-approve-2", "verifying", 30, 0);
|
||||
Assert.NotEqual(merging, vm.ApproveOp.Label);
|
||||
|
||||
worker.Gate.SetResult(new MergeResultDto("merged", new List<string>(), null));
|
||||
@@ -220,7 +212,7 @@ public class DetailsIslandReviewActionsTests : IDisposable
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ApproveReview_UnsubscribesFromMergeProgress_AfterTheCallCompletes()
|
||||
public async Task ApproveReview_UnsubscribesFromOperationProgress_AfterTheCallCompletes()
|
||||
{
|
||||
var worker = new BlockingApproveWorkerClient();
|
||||
var vm = BuildVm(worker);
|
||||
@@ -228,12 +220,12 @@ public class DetailsIslandReviewActionsTests : IDisposable
|
||||
vm.Monitor.ApplyState(TaskStatus.WaitingForReview);
|
||||
|
||||
var approve = vm.ApproveReviewCommand.ExecuteAsync(null);
|
||||
Assert.Equal(1, MergeProgressSubscriberCount(worker));
|
||||
Assert.Equal(1, OperationProgressSubscriberCount(worker));
|
||||
|
||||
worker.Gate.SetResult(new MergeResultDto("merged", new List<string>(), null));
|
||||
await approve;
|
||||
|
||||
Assert.Equal(0, MergeProgressSubscriberCount(worker));
|
||||
Assert.Equal(0, OperationProgressSubscriberCount(worker));
|
||||
}
|
||||
|
||||
private static int OperationProgressSubscriberCount(StubWorkerClient worker)
|
||||
@@ -255,8 +247,7 @@ public class DetailsIslandReviewActionsTests : IDisposable
|
||||
var approve = vm.ApproveReviewCommand.ExecuteAsync(null);
|
||||
var merging = vm.ApproveOp.Label;
|
||||
|
||||
// The rebase phase needs the branch total, which only rides OperationProgress
|
||||
// (MergeProgressEvent forwards elapsed-seconds only) — ignored for other tasks.
|
||||
// The rebase phase needs the branch total — ignored for other tasks.
|
||||
worker.RaiseOperationProgress("some-other-task", "rebasing", 1, 3);
|
||||
Assert.Equal(merging, vm.ApproveOp.Label);
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public class MergeModalViewModelTests
|
||||
|
||||
// The verify gate starts — a distinct phase, so the user sees why this is taking minutes.
|
||||
// (The elapsed time rides in a format argument, which the test localizer drops.)
|
||||
worker.RaiseMergeProgress("task-1", "verifying", 90);
|
||||
worker.RaiseOperationProgress("task-1", "verifying", 90, 0);
|
||||
Assert.NotEqual(merging, vm.ProgressMessage);
|
||||
|
||||
worker.MergeGate.SetResult(new MergeResultDto("merged", new List<string>(), null));
|
||||
@@ -100,7 +100,7 @@ public class MergeModalViewModelTests
|
||||
var submit = vm.SubmitCommand.ExecuteAsync(null);
|
||||
var merging = vm.ProgressMessage;
|
||||
|
||||
worker.RaiseMergeProgress("some-other-task", "verifying", 42);
|
||||
worker.RaiseOperationProgress("some-other-task", "verifying", 42, 0);
|
||||
|
||||
Assert.Equal(merging, vm.ProgressMessage);
|
||||
|
||||
@@ -115,7 +115,7 @@ public class MergeModalViewModelTests
|
||||
await vm.InitializeAsync("task-1", "do the thing");
|
||||
|
||||
await vm.SubmitCommand.ExecuteAsync(null);
|
||||
worker.RaiseMergeProgress("task-1", "verifying", 10);
|
||||
worker.RaiseOperationProgress("task-1", "verifying", 10, 0);
|
||||
|
||||
Assert.Null(vm.ProgressMessage);
|
||||
}
|
||||
@@ -130,8 +130,7 @@ public class MergeModalViewModelTests
|
||||
var submit = vm.SubmitCommand.ExecuteAsync(null);
|
||||
var merging = vm.ProgressMessage;
|
||||
|
||||
// Needs the branch total, which only rides OperationProgress (MergeProgressEvent
|
||||
// forwards elapsed-seconds only) -- and must not be clobbered by that other forwarder.
|
||||
// Needs the branch total, which only OperationProgress carries.
|
||||
worker.RaiseOperationProgress("task-1", "rebasing", 1, 2);
|
||||
Assert.NotEqual(merging, vm.ProgressMessage);
|
||||
Assert.Contains("(1/2)", vm.ProgressMessage);
|
||||
|
||||
Reference in New Issue
Block a user