Merge pull request '[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/cli/RFC.md fully. Find features des...' (#77) from agent/read---spec-code-core-go-cli-rfc-md-full into dev
Some checks failed
Security Scan / security (push) Has been cancelled
Some checks failed
Security Scan / security (push) Has been cancelled
This commit is contained in:
commit
c02e88a6ff
2 changed files with 12 additions and 3 deletions
|
|
@ -102,14 +102,14 @@ func MultiSelect(label string, options []string) ([]string, error) {
|
||||||
|
|
||||||
r := newReader()
|
r := newReader()
|
||||||
input, err := r.ReadString('\n')
|
input, err := r.ReadString('\n')
|
||||||
if err != nil && strings.TrimSpace(input) == "" {
|
trimmed := strings.TrimSpace(input)
|
||||||
|
if err != nil && trimmed == "" {
|
||||||
return []string{}, nil
|
return []string{}, nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil && !errors.Is(err, io.EOF) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
trimmed := strings.TrimSpace(input)
|
|
||||||
selected, parseErr := parseMultiSelection(trimmed, len(options))
|
selected, parseErr := parseMultiSelection(trimmed, len(options))
|
||||||
if parseErr != nil {
|
if parseErr != nil {
|
||||||
return nil, fmt.Errorf("invalid selection %q: %w", trimmed, parseErr)
|
return nil, fmt.Errorf("invalid selection %q: %w", trimmed, parseErr)
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,15 @@ func TestMultiSelect_Bad_EOFReturnsEmptySelection(t *testing.T) {
|
||||||
assert.Empty(t, vals)
|
assert.Empty(t, vals)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMultiSelect_Good_EOFWithInput(t *testing.T) {
|
||||||
|
SetStdin(strings.NewReader("1 3"))
|
||||||
|
defer SetStdin(nil)
|
||||||
|
|
||||||
|
vals, err := MultiSelect("Pick", []string{"a", "b", "c"})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, []string{"a", "c"}, vals)
|
||||||
|
}
|
||||||
|
|
||||||
func TestMultiSelect_Good_DedupesSelections(t *testing.T) {
|
func TestMultiSelect_Good_DedupesSelections(t *testing.T) {
|
||||||
SetStdin(strings.NewReader("1 1 2-3 2\n"))
|
SetStdin(strings.NewReader("1 1 2-3 2\n"))
|
||||||
defer SetStdin(nil)
|
defer SetStdin(nil)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue