feat(ui): wire batch selection, target loading and resolve seam
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -114,4 +114,54 @@ public class WorktreesOverviewBatchMergeTests
|
||||
Assert.False(called);
|
||||
Assert.Equal(BatchMergeOutcome.None, a.MergeOutcome);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SelectedCount_tracks_checked_active_rows()
|
||||
{
|
||||
var vm = NewVm();
|
||||
var a = ActiveRow("a");
|
||||
var b = ActiveRow("b");
|
||||
var merged = ActiveRow("c"); merged.State = WorktreeState.Merged;
|
||||
vm.AddRowForTest(a); vm.AddRowForTest(b); vm.AddRowForTest(merged);
|
||||
|
||||
Assert.Equal(0, vm.SelectedCount);
|
||||
a.IsChecked = true;
|
||||
Assert.Equal(1, vm.SelectedCount);
|
||||
b.IsChecked = true;
|
||||
merged.IsChecked = true;
|
||||
Assert.Equal(2, vm.SelectedCount);
|
||||
a.IsChecked = false;
|
||||
Assert.Equal(1, vm.SelectedCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResolveConflict_invokes_seam_with_task_and_target()
|
||||
{
|
||||
var vm = NewVm();
|
||||
vm.SelectedTarget = "release";
|
||||
var row = ActiveRow("x"); row.MergeOutcome = BatchMergeOutcome.Conflict;
|
||||
|
||||
(string Task, string Target)? captured = null;
|
||||
vm.RequestConflictResolution = (taskId, target) => { captured = (taskId, target); return System.Threading.Tasks.Task.CompletedTask; };
|
||||
|
||||
vm.ResolveConflictCommand.Execute(row);
|
||||
|
||||
Assert.Equal(("x", "release"), captured);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MergeAll_canExecute_requires_target_selection_and_idle()
|
||||
{
|
||||
var vm = NewVm();
|
||||
var a = ActiveRow("a");
|
||||
vm.AddRowForTest(a);
|
||||
|
||||
Assert.False(vm.MergeAllCommand.CanExecute(null));
|
||||
a.IsChecked = true;
|
||||
Assert.False(vm.MergeAllCommand.CanExecute(null));
|
||||
vm.SelectedTarget = "main";
|
||||
Assert.True(vm.MergeAllCommand.CanExecute(null));
|
||||
vm.IsMerging = true;
|
||||
Assert.False(vm.MergeAllCommand.CanExecute(null));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user