diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-25 10:29:28 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-25 10:29:28 +0200 |
| commit | 7dfd9784af4704be02b7d96c97a6454b5de749dc (patch) | |
| tree | d4256d24ca0db03112a33ea11dfec16467592b1c /internal/tui | |
| parent | 39878a9cf79b74af493008f1006e66e8fd11457f (diff) | |
Clamp grouped-files cursor on stats refresh
Diffstat (limited to 'internal/tui')
| -rw-r--r-- | internal/tui/dashboard/model.go | 1 | ||||
| -rw-r--r-- | internal/tui/dashboard/model_test.go | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/internal/tui/dashboard/model.go b/internal/tui/dashboard/model.go index 966e93e..d3d8322 100644 --- a/internal/tui/dashboard/model.go +++ b/internal/tui/dashboard/model.go @@ -90,6 +90,7 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.latest = msg.Snap m.syscallsOffset = clampOffset(m.syscallsOffset, m.maxSyscallsRows()) m.filesOffset = clampOffset(m.filesOffset, m.maxFilesRows()) + m.filesDirOffset = clampOffset(m.filesDirOffset, m.maxFilesDirRows()) m.processesOffset = clampOffset(m.processesOffset, m.maxProcessesRows()) m.streamModel.Refresh() return m, nil diff --git a/internal/tui/dashboard/model_test.go b/internal/tui/dashboard/model_test.go index 489c14b..c243018 100644 --- a/internal/tui/dashboard/model_test.go +++ b/internal/tui/dashboard/model_test.go @@ -257,6 +257,27 @@ func TestStatsTickMsgUpdatesLatestSnapshot(t *testing.T) { } } +func TestStatsTickClampsGroupedFilesOffset(t *testing.T) { + snap := statsengine.NewSnapshot( + nil, + nil, + nil, + nil, + []statsengine.FileSnapshot{{Path: "/a/f1"}, {Path: "/a/f2"}}, + nil, + statsengine.HistogramSnapshot{}, + statsengine.HistogramSnapshot{}, + ) + m := NewModel(nil, nil) + m.filesDirOffset = 10 + + next, _ := m.Update(messages.StatsTickMsg{Snap: &snap}) + model := next.(Model) + if model.filesDirOffset != 0 { + t.Fatalf("expected grouped files offset clamped to 0, got %d", model.filesDirOffset) + } +} + func TestViewRendersTabBarAndHelp(t *testing.T) { m := NewModelWithConfig(nil, nil, 1000, common.DefaultKeyMap()) out := m.View() |
