summaryrefslogtreecommitdiff
path: root/internal/tui/dashboard/model_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-08 11:26:11 +0200
committerPaul Buetow <paul@buetow.org>2026-03-08 11:26:11 +0200
commitf903279e8a872cd7c417f2f57bf306bfb3f3cb87 (patch)
tree03f68465d68cee8919f45f90c6cbc2ebde2a9b17 /internal/tui/dashboard/model_test.go
parent9cbf9ec8e9eac92431b9a742c1b625888cb69dfa (diff)
dashboard: clamp icicle selection by rendered tile count
Diffstat (limited to 'internal/tui/dashboard/model_test.go')
-rw-r--r--internal/tui/dashboard/model_test.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/internal/tui/dashboard/model_test.go b/internal/tui/dashboard/model_test.go
index 5a3be89..f01a701 100644
--- a/internal/tui/dashboard/model_test.go
+++ b/internal/tui/dashboard/model_test.go
@@ -492,6 +492,33 @@ func TestTreemapModeUsesJKForSelection(t *testing.T) {
}
}
+func TestFilesIcicleModeSelectionUsesIcicleTileCount(t *testing.T) {
+ snap := statsengine.NewSnapshot(nil, nil, nil, nil, []statsengine.FileSnapshot{
+ {Path: "/a/b/c/file1", Accesses: 9},
+ {Path: "/a/d/e/file2", Accesses: 7},
+ }, nil, statsengine.HistogramSnapshot{}, statsengine.HistogramSnapshot{})
+ m := NewModelWithConfig(nil, nil, 250, common.DefaultKeyMap())
+ m.activeTab = TabFiles
+ m.latest = &snap
+ m.filesDirGrouped = true
+ m.filesVizMode = tabVizModeIcicle
+ m.width = 120
+ m.height = 28
+
+ expectedMax := m.maxFilesDirRowsForMode()
+ if expectedMax <= m.maxFilesDirRows() {
+ t.Fatalf("expected icicle tile count to exceed grouped dir count: tiles=%d dirs=%d", expectedMax, m.maxFilesDirRows())
+ }
+
+ for i := 0; i < expectedMax+4; i++ {
+ next, _ := m.Update(tea.KeyPressMsg{Code: []rune{'j'}[0], Text: string([]rune{'j'})})
+ m = next.(Model)
+ }
+ if m.filesDirOffset != expectedMax-1 {
+ t.Fatalf("expected icicle selection clamped by tile count to %d, got %d", expectedMax-1, m.filesDirOffset)
+ }
+}
+
func TestTreemapModeRendersTreemapHeader(t *testing.T) {
snap := statsengine.NewSnapshot(nil, nil, nil, []statsengine.SyscallSnapshot{
{Name: "read", Count: 9, Bytes: 512},