github.com/twilio/twilio-go@v1.20.1/client/error_test.go (about) 1 package client_test 2 3 import ( 4 "encoding/json" 5 "strings" 6 "testing" 7 8 assert "github.com/stretchr/testify/require" 9 "github.com/twilio/twilio-go/client" 10 ) 11 12 const ( 13 errorCode = 20001 14 errorMessage = "Bad request" 15 errorMoreInfo = "https://www.twilio.com/docs/errors/20001" 16 errorStatus = 400 17 ) 18 19 func TestTwilioRestError_Error(t *testing.T) { 20 details := make(map[string]interface{}) 21 details["foo"] = "bar" 22 err := &client.TwilioRestError{ 23 Code: errorCode, 24 Details: details, 25 Message: errorMessage, 26 MoreInfo: errorMoreInfo, 27 Status: errorStatus, 28 } 29 expected := "Status: 400 - ApiError 20001: Bad request ({\"foo\":\"bar\"}) More info: https://www.twilio.com/docs/errors/20001" 30 assert.Equal(t, expected, err.Error()) 31 } 32 33 func TestTwilioRestError_NoDetails(t *testing.T) { 34 err := &client.TwilioRestError{} 35 response := `{"code":20001,"message":"Bad request","more_info":"https://www.twilio.com/docs/errors/20001","status":400}` 36 responseReader := strings.NewReader(response) 37 decodeErr := json.NewDecoder(responseReader).Decode(err) 38 assert.Nil(t, decodeErr) 39 assert.Equal(t, err.Code, errorCode) 40 assert.Equal(t, err.Status, errorStatus) 41 assert.Equal(t, err.Message, errorMessage) 42 assert.Equal(t, err.MoreInfo, errorMoreInfo) 43 assert.Nil(t, err.Details) 44 }