fix(ui): surface precondition hints for silently-disabled review buttons (UX-Audit #2)

Cancel now shows an amber hint + tooltip while a merge drain is in
progress (ShowMergeDrainHint mirrors IsMergeDraining). Continue,
Reset & Retry, Open Diff, Worktree, and Review Combined Diff gain
ToolTip.Tip + ToolTip.ShowOnDisabled explaining why they're locked.
No CanExecute or behavior changed, only added communication.
This commit is contained in:
mika kuns
2026-08-21 09:31:56 +02:00
parent 4fc64732ec
commit dbb73bae38
5 changed files with 60 additions and 5 deletions
@@ -138,6 +138,24 @@ public class DetailsIslandReviewActionsTests : IDisposable
Assert.False(vm.ApproveReviewCommand.CanExecute(null));
}
[Fact]
public void ShowMergeDrainHint_IsTrueExactlyWhenMergeIsDraining()
{
var vm = BuildVm(new RecordingWorkerClient());
vm.Bind(new TaskRowViewModel { Id = "task-drain-1", Status = TaskStatus.WaitingForReview });
Assert.False(vm.ShowMergeDrainHint);
Assert.True(vm.CancelReviewCommand.CanExecute(null));
vm.IsMergeDraining = true;
Assert.True(vm.ShowMergeDrainHint);
Assert.False(vm.CancelReviewCommand.CanExecute(null));
vm.IsMergeDraining = false;
Assert.False(vm.ShowMergeDrainHint);
Assert.True(vm.CancelReviewCommand.CanExecute(null));
}
private sealed class ThrowingWorkerClient : StubWorkerClient
{
public override bool IsConnected => true;