internal/jobs/tree_test.go
buildTree() - Converts flat job list to hierarchical tree
- Test: single job, nested folders, level assignment, parent references
flattenVisibleNodes() - Returns visible nodes respecting expand/collapse
- Test: all expanded, collapsed folders hide children, mixed states
expandPathToNode() - Expands all ancestors of target node
- Test: deeply nested collapsed folders, already expanded paths
collectAllNodes() - Returns all nodes (for search)
- Test: excludes root, includes all descendants, maintains order
toggleExpand() / expandNode() / collapseNode() - State management
- Test: toggle behavior, non-folders don't expand, state persistence
Why: Complex recursive algorithm controlling UI rendering and navigation
Pattern: Table-driven tests using t.Run()
internal/jobs/tree_test.gobuildTree()- Converts flat job list to hierarchical treeflattenVisibleNodes()- Returns visible nodes respecting expand/collapseexpandPathToNode()- Expands all ancestors of target nodecollectAllNodes()- Returns all nodes (for search)toggleExpand()/expandNode()/collapseNode()- State managementWhy: Complex recursive algorithm controlling UI rendering and navigation
Pattern: Table-driven tests using
t.Run()