diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-08 15:38:17 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-08 16:13:46 +0300 |
| commit | 02f45bd1707639a081d68f90ecc00c429de6d962 (patch) | |
| tree | e00ab76060fe8d5c2f6cb6db350bbf0a73f85365 /internal/ui/table_test.go | |
| parent | a08c45e934bed5fded2708df535e1c8f8776fa23 (diff) | |
fix(l0): keep ESC from quitting
Diffstat (limited to 'internal/ui/table_test.go')
| -rw-r--r-- | internal/ui/table_test.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/internal/ui/table_test.go b/internal/ui/table_test.go index 74c7e70..6adaad1 100644 --- a/internal/ui/table_test.go +++ b/internal/ui/table_test.go @@ -762,6 +762,80 @@ func TestEscClosesHelp(t *testing.T) { } } +func TestEscDoesNotQuitFromTable(t *testing.T) { + tmp := t.TempDir() + taskPath := setupBasicTask(t, tmp) + setupEnv(t, taskPath) + + m, err := New(nil, "firefox") + if err != nil { + t.Fatalf("New: %v", err) + } + + mv, cmd := (&m).Update(tea.KeyPressMsg{Code: tea.KeyEsc}) + if cmd != nil { + t.Fatalf("esc in table mode unexpectedly returned a command") + } + m = *mv.(*Model) + if m.showHelp || m.showTaskDetail || m.showUltra { + t.Fatalf("esc changed mode unexpectedly: help=%v detail=%v ultra=%v", m.showHelp, m.showTaskDetail, m.showUltra) + } + + mv, cmd = (&m).Update(tea.KeyPressMsg{Code: 'q', Text: "q"}) + if cmd == nil { + t.Fatalf("q in table mode did not return a quit command") + } + m = *mv.(*Model) + if m.showHelp || m.showTaskDetail || m.showUltra { + t.Fatalf("q changed mode unexpectedly: help=%v detail=%v ultra=%v", m.showHelp, m.showTaskDetail, m.showUltra) + } +} + +func TestEscDoesNotQuitUltraStartup(t *testing.T) { + tmp := t.TempDir() + taskPath := setupBasicTask(t, tmp) + setupEnv(t, taskPath) + + m, err := New(nil, "firefox") + if err != nil { + t.Fatalf("New: %v", err) + } + m.SetUltra(true) + + mv, cmd := (&m).Update(tea.KeyPressMsg{Code: tea.KeyEsc}) + if cmd != nil { + t.Fatalf("esc in ultra startup unexpectedly returned a command") + } + m = *mv.(*Model) + if !m.showUltra { + t.Fatalf("esc in ultra startup exited ultra mode") + } + + m.ultraSearchRegex = regexp.MustCompile("alpha") + m.ultraFiltered = []int{0} + m.ultraSearchInput.SetValue("alpha") + + mv, cmd = (&m).Update(tea.KeyPressMsg{Code: tea.KeyEsc}) + if cmd != nil { + t.Fatalf("esc in ultra startup with search unexpectedly returned a command") + } + m = *mv.(*Model) + if !m.showUltra { + t.Fatalf("esc in ultra startup with search exited ultra mode") + } + if m.ultraSearchRegex != nil { + t.Fatalf("esc in ultra startup with search did not clear ultraSearchRegex") + } + if m.ultraFiltered != nil { + t.Fatalf("esc in ultra startup with search did not clear ultraFiltered") + } + + mv, cmd = (&m).Update(tea.KeyPressMsg{Code: 'q', Text: "q"}) + if cmd == nil { + t.Fatalf("q in ultra startup did not return a quit command") + } +} + func TestUltraHelpUsesUltraBindingsAndClosesBeforeLeavingUltra(t *testing.T) { tmp := t.TempDir() taskPath := setupBasicTask(t, tmp) |
