Add task sidebar workflow

This commit is contained in:
2026-06-24 12:28:56 +01:00
parent 45263d59f8
commit d133839194
33 changed files with 1890 additions and 134 deletions
+33 -1
View File
@@ -1,6 +1,10 @@
package app
import "testing"
import (
"testing"
"github.com/hjbdev/patterm/internal/task"
)
func TestVisibleSessionTreeScopesToFocusedRoot(t *testing.T) {
root1 := testChild("c1", "root1", "", StatusRunning)
@@ -125,6 +129,34 @@ func TestSidebarNavListIncludesProcessesAboveAgentTree(t *testing.T) {
}
}
func TestSidebarNavOrdersTasksBeforeProcessesAndPads(t *testing.T) {
p := testProcess("p1", "bun", StatusRunning)
r := testAgent("a1", "claude", "", StatusRunning)
tasks := []task.Task{{ID: "t1", Title: "Fix sidebar"}}
nav := sidebarNav([]*Child{p, r}, "a1", tasks, nil)
if len(nav) != 3 {
t.Fatalf("nav len = %d, want 3 (%+v)", len(nav), nav)
}
if !nav[0].isTask() || nav[0].taskID != "t1" {
t.Fatalf("first nav entry = %+v, want task t1", nav[0])
}
if !nav[1].isChild() || nav[1].childID != "p1" {
t.Fatalf("second nav entry = %+v, want process p1", nav[1])
}
if !nav[2].isChild() || nav[2].childID != "a1" {
t.Fatalf("third nav entry = %+v, want agent a1", nav[2])
}
}
func TestNextNavEntryWalksFromTaskToProcess(t *testing.T) {
p := testProcess("p1", "bun", StatusRunning)
tasks := []task.Task{{ID: "t1", Title: "Fix sidebar"}}
next := nextNavEntry([]*Child{p}, "", "", "t1", "", tasks, nil, +1)
if !next.isChild() || next.childID != "p1" {
t.Fatalf("task -> next = %+v, want process p1", next)
}
}
func TestSidebarNavListIncludesExitedProcesses(t *testing.T) {
p := testProcess("p1", "shell", StatusExited)
r := testAgent("a1", "claude", "", StatusRunning)