package gcp import ( "errors" "testing" "github.com/stretchr/testify/assert" "google.golang.org/api/googleapi" ) var ( err = errors.New("test") ) func TestWrap(t *testing.T) { assert.Nil(t, Wrap(nil)) assert.NotNil(t, Wrap(err)) } func TestNew(t *testing.T) { gerr := New("test") assert.Equal(t, err.Error(), gerr.Error()) } func TestError(t *testing.T) { gerr := Wrap(err) assert.Equal(t, err.Error(), gerr.Error()) } func TestUnwrap(t *testing.T) { gerr := Wrap(err) assert.Equal(t, err, gerr.Unwrap()) assert.True(t, errors.Is(gerr, err)) } func TestExtensions(t *testing.T) { gcpError := &googleapi.Error{ Code: 404, Message: "not found", Details: []interface{}{ map[string]interface{}{ "status": "not found", }, }, Header: map[string][]string{"Host": {"localhost"}}, Body: `{"error":{"message":"Error message for StatusNotFound."}}`, Errors: []googleapi.ErrorItem{ { Reason: "keyInvalid", Message: "Not Found", }, }, } gerror := Wrap(gcpError) assert.Equal(t, gcpError, gerror.Unwrap()) assert.Equal(t, "not found", gerror.Error()) ext := gerror.Extensions() assert.Equal(t, 404, ext["statusCode"]) assert.Equal(t, "localhost", ext["host"]) }