summaryrefslogtreecommitdiff
path: root/internal/tui/eventstream/model_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-25 08:55:58 +0200
committerPaul Buetow <paul@buetow.org>2026-02-25 08:55:58 +0200
commit22f1589e62aeafed805b8dd07d4610b7662f205e (patch)
tree1661bd680ccd0d969359c3f3cf3cbd3d8ec4a5a3 /internal/tui/eventstream/model_test.go
parentd423225771a10ebae87d22c69fe88e5b65a3d378 (diff)
Polish stream filter UX and expand TUI viewport
Diffstat (limited to 'internal/tui/eventstream/model_test.go')
-rw-r--r--internal/tui/eventstream/model_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/internal/tui/eventstream/model_test.go b/internal/tui/eventstream/model_test.go
index 69369d8..937bb33 100644
--- a/internal/tui/eventstream/model_test.go
+++ b/internal/tui/eventstream/model_test.go
@@ -122,3 +122,51 @@ func TestModelHandleKeyRouting(t *testing.T) {
t.Fatalf("modal should close on esc")
}
}
+
+func TestFilterModalTemporarilyPausesAndRestoresState(t *testing.T) {
+ rb := NewRingBuffer()
+ m := NewModel(rb)
+ m.height = 20
+ pushEvents(rb, 4)
+ m.Refresh()
+
+ if m.paused {
+ t.Fatalf("expected model to start unpaused")
+ }
+ if !m.HandleKey("f") {
+ t.Fatalf("f should be handled")
+ }
+ if !m.paused {
+ t.Fatalf("expected model paused while filter modal is open")
+ }
+ if !m.filterModal.Visible() {
+ t.Fatalf("expected filter modal visible after f")
+ }
+ if !m.HandleKey("esc") {
+ t.Fatalf("esc should be routed to filter modal")
+ }
+ if m.filterModal.Visible() {
+ t.Fatalf("expected filter modal closed after esc")
+ }
+ if m.paused {
+ t.Fatalf("expected pause state restored to unpaused after modal close")
+ }
+
+ // If the user was already paused before opening the filter modal,
+ // that pause state should remain after closing.
+ if !m.HandleKey("space") {
+ t.Fatalf("space should toggle pause")
+ }
+ if !m.paused {
+ t.Fatalf("expected paused=true after space")
+ }
+ if !m.HandleKey("f") {
+ t.Fatalf("f should be handled while paused")
+ }
+ if !m.HandleKey("esc") {
+ t.Fatalf("esc should close modal")
+ }
+ if !m.paused {
+ t.Fatalf("expected paused state preserved after modal close")
+ }
+}