diff --git a/internal/prompter/prompter.go b/internal/prompter/prompter.go index f9146d8b7..23f967e13 100644 --- a/internal/prompter/prompter.go +++ b/internal/prompter/prompter.go @@ -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 } diff --git a/internal/prompter/speech_synthesizer_friendly_prompter_test.go b/internal/prompter/speech_synthesizer_friendly_prompter_test.go index 119106f64..8f41de973 100644 --- a/internal/prompter/speech_synthesizer_friendly_prompter_test.go +++ b/internal/prompter/speech_synthesizer_friendly_prompter_test.go @@ -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() {