fix(prompter): input returns default when blank
This commit is contained in:
parent
5b0d49c6ec
commit
4cf048a8d1
2 changed files with 27 additions and 0 deletions
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue