feat(ui): collapse parent task rows by default with granular row sync

This commit is contained in:
Mika Kuns
2026-06-25 13:48:08 +02:00
parent d80a57836c
commit 38defee3d8
6 changed files with 66 additions and 60 deletions

View File

@@ -165,7 +165,7 @@ public class TasksIslandViewModelPlanningTests
=> new TaskRowViewModel { Id = id, Status = status, ParentTaskId = parentId, PlanningPhase = phase };
[Fact]
public void ToggleExpand_CollapsesChildrenOfPlanningParent()
public void PlanningParentWithChildren_CollapsedByDefault_ToggleExpands()
{
var parent = MakeRow("p1", TaskStatus.Idle, phase: PlanningPhase.Active);
var child1 = MakeRow("c1", TaskStatus.Idle, "p1");
@@ -173,18 +173,17 @@ public class TasksIslandViewModelPlanningTests
var (vm, _) = VmFactory.Create([parent, child1, child2]);
// Initially expanded — children visible in OpenItems
Assert.Contains(child1, vm.OpenItems);
Assert.Contains(child2, vm.OpenItems);
// Collapse the parent
vm.ToggleExpandCommand.Execute(parent);
// Children should no longer appear
// Collapsed by default — children hidden, parent still present
Assert.DoesNotContain(child1, vm.OpenItems);
Assert.DoesNotContain(child2, vm.OpenItems);
// Parent still present
Assert.Contains(parent, vm.OpenItems);
// Expand the parent
vm.ToggleExpandCommand.Execute(parent);
// Children now visible
Assert.Contains(child1, vm.OpenItems);
Assert.Contains(child2, vm.OpenItems);
}
[Fact]
@@ -210,20 +209,23 @@ public class TasksIslandViewModelPlanningTests
}
[Fact]
public void ToggleExpand_ExpandsCollapsedParentAgain()
public void ToggleExpand_TogglesParentExpansion()
{
var parent = MakeRow("p1", TaskStatus.Idle, phase: PlanningPhase.Finalized);
var child = MakeRow("c1", TaskStatus.Idle, "p1");
var (vm, _) = VmFactory.Create([parent, child]);
// Collapse
vm.ToggleExpandCommand.Execute(parent);
// Collapsed by default
Assert.DoesNotContain(child, vm.OpenItems);
// Re-expand
// Expand
vm.ToggleExpandCommand.Execute(parent);
Assert.Contains(child, vm.OpenItems);
// Collapse again
vm.ToggleExpandCommand.Execute(parent);
Assert.DoesNotContain(child, vm.OpenItems);
}
[Fact]