diff options
Diffstat (limited to 'internal/tmuxedit/agent_test.go')
| -rw-r--r-- | internal/tmuxedit/agent_test.go | 46 |
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") |
