summaryrefslogtreecommitdiff
path: root/internal/tmuxedit/agent_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/tmuxedit/agent_test.go')
-rw-r--r--internal/tmuxedit/agent_test.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/internal/tmuxedit/agent_test.go b/internal/tmuxedit/agent_test.go
index 3673d70..8bd1ad4 100644
--- a/internal/tmuxedit/agent_test.go
+++ b/internal/tmuxedit/agent_test.go
@@ -1,6 +1,8 @@
package tmuxedit
import (
+ "fmt"
+ "strings"
"testing"
)
@@ -86,6 +88,50 @@ func TestBaseAgent_ClearInput_Disabled(t *testing.T) {
}
}
+func TestBaseAgent_ClearInput_EmptyKeys(t *testing.T) {
+ // clearFirst=true but no clearKeys should be a no-op
+ b := &baseAgent{clearFirst: true, clearKeys: ""}
+ err := b.ClearInput("%1")
+ if err != nil {
+ t.Fatalf("unexpected error: %v", err)
+ }
+}
+
+func TestBaseAgent_ClearInput_Enabled(t *testing.T) {
+ noSleep(t)
+ var calls []string
+ oldSend := sendKeys
+ defer func() { sendKeys = oldSend }()
+ sendKeys = func(paneID string, keys ...string) error {
+ calls = append(calls, fmt.Sprintf("send:%s:%s", paneID, strings.Join(keys, ",")))
+ return nil
+ }
+
+ b := &baseAgent{clearFirst: true, clearKeys: "C-u"}
+ err := b.ClearInput("%2")
+ if err != nil {
+ t.Fatalf("unexpected error: %v", err)
+ }
+ if len(calls) != 1 || calls[0] != "send:%2:C-u" {
+ t.Errorf("expected single C-u send call, got %v", calls)
+ }
+}
+
+func TestBaseAgent_ClearInput_Error(t *testing.T) {
+ noSleep(t)
+ oldSend := sendKeys
+ defer func() { sendKeys = oldSend }()
+ sendKeys = func(string, ...string) error {
+ return fmt.Errorf("send failed")
+ }
+
+ b := &baseAgent{clearFirst: true, clearKeys: "C-u"}
+ err := b.ClearInput("%1")
+ if err == nil {
+ t.Fatal("expected error from sendClearSequence failure")
+ }
+}
+
func TestBaseAgent_ExtractPrompt_NoPattern(t *testing.T) {
b := &baseAgent{}
got := b.ExtractPrompt("some content")