diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 15:06:22 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 15:06:22 +0200 |
| commit | 1530bf2856bbb32a6e0457596b55c07f3836a0ec (patch) | |
| tree | d699766a2607042de0f8278652b9b7cde2426b84 /internal/tui/flamegraph/model_test.go | |
| parent | 4737786fd4a417ff94e22e4f72a1e924d4e033dd (diff) | |
flamegraph: use full viewport with capped bar height and preserve footer/status
Diffstat (limited to 'internal/tui/flamegraph/model_test.go')
| -rw-r--r-- | internal/tui/flamegraph/model_test.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/tui/flamegraph/model_test.go b/internal/tui/flamegraph/model_test.go index 093bf34..355facc 100644 --- a/internal/tui/flamegraph/model_test.go +++ b/internal/tui/flamegraph/model_test.go @@ -666,6 +666,32 @@ func TestViewIncludesSelectionStatusBar(t *testing.T) { } } +func TestViewFitsViewportHeightAndKeepsSearchFooterVisible(t *testing.T) { + m := NewModel(nil) + m.width = 100 + m.height = 12 + m.frames = []tuiFrame{ + {Name: "root", Depth: 0, Col: 0, Row: 0, Width: 100, Total: 100, Percent: 100, Path: "root"}, + {Name: "child", Depth: 1, Col: 0, Row: 1, Width: 80, Total: 80, Percent: 80, Path: "root" + pathSeparator + "child"}, + } + m.selectedIdx = 1 + m.globalTotal = 100 + m.searchActive = true + m.searchInput.SetValue("child") + + view := m.View().Content + lines := strings.Split(view, "\n") + if got, max := len(lines), m.height; got > max { + t.Fatalf("expected flame view to fit viewport height <=%d, got %d lines", max, got) + } + if !strings.Contains(view, "matches") { + t.Fatalf("expected search footer to remain visible in viewport, got %q", view) + } + if !strings.Contains(view, "[LIVE] sel:2/2 child") { + t.Fatalf("expected selection status line to remain visible, got %q", view) + } +} + func TestViewFilterSelectionStatusUsesFilteredTotalAndKeepsContextVisible(t *testing.T) { snapshot := &snapshotNode{ Name: "root", |
