1
0
mirror of synced 2024-11-22 04:56:06 +03:00
mg-transport-api-client-go/v1/errors_test.go

55 lines
1.4 KiB
Go
Raw Normal View History

2022-10-25 17:32:46 +03:00
package v1
import (
2022-10-26 10:54:54 +03:00
"bytes"
2022-10-25 17:32:46 +03:00
"errors"
2022-10-26 10:54:54 +03:00
"fmt"
"io"
"net/http"
2022-10-25 17:32:46 +03:00
"net/url"
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewCriticalHTTPError(t *testing.T) {
err := &url.Error{Op: "Get", URL: "http//example.com", Err: errors.New("EOF")}
httpErr := NewCriticalHTTPError(err)
assert.IsType(t, new(httpClientError), httpErr)
assert.IsType(t, new(url.Error), errors.Unwrap(httpErr))
assert.IsType(t, new(url.Error), errors.Unwrap(httpErr))
2022-10-26 10:54:54 +03:00
assert.Equal(t, httpErr.Error(), fmt.Sprintf("%s - %s", defaultErrorMessage, err.Error()))
2022-10-25 17:32:46 +03:00
}
func TestNewApiClientError(t *testing.T) {
body := []byte(`{"errors" : ["Channel not found"]}`)
httpErr := NewAPIClientError(body)
assert.IsType(t, new(httpClientError), httpErr)
assert.Equal(t, httpErr.Error(), "Channel not found")
body = []byte{}
httpErr = NewAPIClientError(body)
assert.IsType(t, new(httpClientError), httpErr)
assert.Equal(t, httpErr.Error(), internalServerError)
2022-10-26 10:54:54 +03:00
}
func TestNewServerError(t *testing.T) {
body := []byte(`{"errors" : ["Something went wrong"]}`)
response := new(http.Response)
response.Body = io.NopCloser(bytes.NewReader(body))
serverErr := NewServerError(response)
assert.IsType(t, new(httpClientError), serverErr)
assert.Equal(t, serverErr.Error(), "Something went wrong")
var err *httpClientError
if errors.As(serverErr, &err) {
2022-10-26 14:58:32 +03:00
assert.NotNil(t, err.LimitedResponse)
2022-10-26 10:54:54 +03:00
} else {
t.Fatal("Unexpected type of error")
}
}