diff --git a/twiml/voice_response.go b/twiml/voice_response.go index fcc7e8fbb..43d5d14d1 100644 --- a/twiml/voice_response.go +++ b/twiml/voice_response.go @@ -362,7 +362,7 @@ func (m VoicePrompt) GetText() string { func (m VoicePrompt) GetAttr() (map[string]string, map[string]string) { paramsAttr := map[string]string{ - "For_": m.For_, + "For": m.For_, "ErrorType": m.ErrorType, "CardType": m.CardType, "Attempt": m.Attempt, diff --git a/twiml/voice_response_test.go b/twiml/voice_response_test.go index 8158ed279..5d15c7c5f 100644 --- a/twiml/voice_response_test.go +++ b/twiml/voice_response_test.go @@ -48,6 +48,23 @@ func TestVoice_SayVerbWithParams(t *testing.T) { assert.Contains(t, resp, `language="en"`) } +func TestVoice_PromptVerbWithParams(t *testing.T) { + prompt := twiml.VoicePrompt{ + Attempt: "1", + CardType: "visa", + ErrorType: "invalid-card-number", + For_: "security-code", + RequireMatchingInputs: "false", + } + verbs := []twiml.Element{prompt} + resp, _ := twiml.Messages(verbs) + assert.Contains(t, resp, `attempt="1"`) + assert.Contains(t, resp, `cardType="visa"`) + assert.Contains(t, resp, `errorType="invalid-card-number"`) + assert.Contains(t, resp, `for="security-code"`) + assert.Contains(t, resp, `requireMatchingInputs="false"`) +} + func TestVoice_SayVerbWithOptionalAttributes(t *testing.T) { optAttrs := map[string]string{"PlaybackURL": "https://demo.twilio.com"} say := twiml.VoiceSay{