From d1d3668b0508199fc140d6dbd0d0728c30c7dd59 Mon Sep 17 00:00:00 2001 From: lawrence3699 Date: Mon, 27 Apr 2026 20:14:55 +1000 Subject: [PATCH] fix(filepicker): render after default-height navigation --- filepicker/filepicker.go | 2 +- filepicker/filepicker_test.go | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 filepicker/filepicker_test.go diff --git a/filepicker/filepicker.go b/filepicker/filepicker.go index 1d2a1cc2..e40fa764 100644 --- a/filepicker/filepicker.go +++ b/filepicker/filepicker.go @@ -37,7 +37,7 @@ func New() Model { DirAllowed: false, FileAllowed: true, AutoHeight: true, - height: 0, + height: 1, maxIdx: 0, minIdx: 0, selectedStack: newStack(), diff --git a/filepicker/filepicker_test.go b/filepicker/filepicker_test.go new file mode 100644 index 00000000..fe1847db --- /dev/null +++ b/filepicker/filepicker_test.go @@ -0,0 +1,47 @@ +package filepicker + +import ( + "os" + "path/filepath" + "strings" + "testing" + + tea "charm.land/bubbletea/v2" +) + +func TestDefaultHeightRendersOpenedDirectory(t *testing.T) { + root := t.TempDir() + subdir := filepath.Join(root, "subdir") + if err := os.Mkdir(subdir, 0o755); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(filepath.Join(subdir, "file.txt"), []byte("x"), 0o644); err != nil { + t.Fatal(err) + } + + m := New() + m.CurrentDirectory = root + m = runFilepickerCmd(t, m, m.Init()) + + if view := m.View(); !strings.Contains(view, "subdir") { + t.Fatalf("expected initial view to show subdir, got %q", view) + } + + var cmd tea.Cmd + m, cmd = m.Update(tea.KeyPressMsg{Code: 'l', Text: "l"}) + m = runFilepickerCmd(t, m, cmd) + + if view := m.View(); !strings.Contains(view, "file.txt") { + t.Fatalf("expected opened directory view to show file.txt, got %q", view) + } +} + +func runFilepickerCmd(t *testing.T, m Model, cmd tea.Cmd) Model { + t.Helper() + if cmd == nil { + t.Fatal("expected command") + } + + next, _ := m.Update(cmd()) + return next +}