summaryrefslogtreecommitdiff
path: root/internal/cli/cli_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cli/cli_test.go')
-rw-r--r--internal/cli/cli_test.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/internal/cli/cli_test.go b/internal/cli/cli_test.go
index 250601c..2ad52db 100644
--- a/internal/cli/cli_test.go
+++ b/internal/cli/cli_test.go
@@ -364,6 +364,41 @@ func TestMakeActionFn_nil(t *testing.T) {
}
}
+// ---- pickerActionArgv -------------------------------------------------------
+
+// TestPickerActionArgv verifies the direct mapping from picker action keys to
+// CLI argv commands used by interactive empty-line fzf selection.
+func TestPickerActionArgv(t *testing.T) {
+ desc := "docs/secret.txt"
+
+ cases := []struct {
+ name string
+ action store.PickerAction
+ want []string
+ }{
+ {name: "select", action: store.PickerSelect, want: nil},
+ {name: "cat", action: store.PickerCat, want: []string{"cat", desc}},
+ {name: "paste", action: store.PickerPaste, want: []string{"paste", desc}},
+ {name: "open", action: store.PickerOpen, want: []string{"open", desc}},
+ {name: "edit", action: store.PickerEdit, want: []string{"edit", desc}},
+ {name: "unknown", action: store.PickerAction("weird"), want: nil},
+ }
+
+ for _, tc := range cases {
+ t.Run(tc.name, func(t *testing.T) {
+ got := pickerActionArgv(tc.action, desc)
+ if len(got) != len(tc.want) {
+ t.Fatalf("pickerActionArgv(%q) len = %d; want %d (%v)", tc.action, len(got), len(tc.want), got)
+ }
+ for i := range got {
+ if got[i] != tc.want[i] {
+ t.Fatalf("pickerActionArgv(%q)[%d] = %q; want %q", tc.action, i, got[i], tc.want[i])
+ }
+ }
+ })
+ }
+}
+
// ---- remaining dispatchSearch branches --------------------------------------
// TestDispatch_searchActions exercises all SearchActions entries on an empty