fix(prompter): input returns default when blank

This commit is contained in:
Kynan Ware 2025-04-04 11:33:10 -06:00
parent 5b0d49c6ec
commit 4cf048a8d1
2 changed files with 27 additions and 0 deletions

View file

@ -125,6 +125,7 @@ func (p *speechSynthesizerFriendlyPrompter) MultiSelect(prompt string, defaults
func (p *speechSynthesizerFriendlyPrompter) Input(prompt, defaultValue string) (string, error) {
result := defaultValue
prompt = fmt.Sprintf("%s (%s)", prompt, defaultValue)
form := p.newForm(
huh.NewGroup(
huh.NewInput().
@ -134,6 +135,10 @@ func (p *speechSynthesizerFriendlyPrompter) Input(prompt, defaultValue string) (
)
err := form.Run()
if result == "" {
return defaultValue, nil
}
return result, err
}

View file

@ -116,6 +116,28 @@ func TestSpeechSynthesizerFriendlyPrompter(t *testing.T) {
assert.Equal(t, dummyText, inputValue)
})
t.Run("Input - blank input returns default value", func(t *testing.T) {
dummyDefaultValue := "12345abcdefg"
go func() {
// Wait for prompt to appear
_, err := console.ExpectString("Enter some characters")
require.NoError(t, err)
// Enter nothing
_, err = console.SendLine("")
require.NoError(t, err)
// Expect the default value to be returned
_, err = console.ExpectString(dummyDefaultValue)
require.NoError(t, err)
}()
inputValue, err := p.Input("Enter some characters", dummyDefaultValue)
require.NoError(t, err)
assert.Equal(t, dummyDefaultValue, inputValue)
})
t.Run("Password", func(t *testing.T) {
dummyPassword := "12345abcdefg"
go func() {