feat: improve textbox editor behaviour

This commit is contained in:
2026-07-31 15:36:23 +02:00
parent b24669e604
commit e36b00f741
15 changed files with 504 additions and 154 deletions

View File

@@ -50,6 +50,36 @@ func TestReviewerCompletionSupportsMultipleEligibleUsers(t *testing.T) {
}
}
func TestReviewerCompletionUsesEnterAndTabLeavesField(t *testing.T) {
m := NewApp(&recordingPRService{}, "o", "r", false, 50, time.Second)
m.writeMode = writePREdit
m.prEditField = prEditReviewersField
m.details = PRDetails{PullRequest: PullRequest{Author: "author"}}
m.prEditUsers = []RepositoryUser{{Login: "alice", CanReview: true}}
m.prEditEditors[prEditReviewersField] = newTextEditor("ali", false)
updated, _ := m.updatePREditInput(tea.KeyMsg{Type: tea.KeyTab})
m = updated.(App)
if m.prEditField != prEditAssigneesField ||
m.prEditEditors[prEditReviewersField].Text != "ali" {
t.Fatalf(
"tab field=%d reviewers=%q",
m.prEditField, m.prEditEditors[prEditReviewersField].Text,
)
}
m.prEditField = prEditReviewersField
updated, _ = m.updatePREditInput(tea.KeyMsg{Type: tea.KeyEnter})
m = updated.(App)
if m.prEditField != prEditReviewersField ||
m.prEditEditors[prEditReviewersField].Text != "alice" {
t.Fatalf(
"enter field=%d reviewers=%q",
m.prEditField, m.prEditEditors[prEditReviewersField].Text,
)
}
}
func TestReviewerInputCommitsMultipleEligibleUsersWithSpace(t *testing.T) {
m := NewApp(&recordingPRService{}, "o", "r", false, 50, time.Second)
m.writeMode = writePREdit