...

Source file src/edge-infra.dev/pkg/edge/api/apierror/gcp/gcperror_test.go

Documentation: edge-infra.dev/pkg/edge/api/apierror/gcp

     1  package gcp
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"google.golang.org/api/googleapi"
     9  )
    10  
    11  var (
    12  	err = errors.New("test")
    13  )
    14  
    15  func TestWrap(t *testing.T) {
    16  	assert.Nil(t, Wrap(nil))
    17  	assert.NotNil(t, Wrap(err))
    18  }
    19  
    20  func TestNew(t *testing.T) {
    21  	gerr := New("test")
    22  	assert.Equal(t, err.Error(), gerr.Error())
    23  }
    24  
    25  func TestError(t *testing.T) {
    26  	gerr := Wrap(err)
    27  	assert.Equal(t, err.Error(), gerr.Error())
    28  }
    29  
    30  func TestUnwrap(t *testing.T) {
    31  	gerr := Wrap(err)
    32  	assert.Equal(t, err, gerr.Unwrap())
    33  	assert.True(t, errors.Is(gerr, err))
    34  }
    35  
    36  func TestExtensions(t *testing.T) {
    37  	gcpError := &googleapi.Error{
    38  		Code:    404,
    39  		Message: "not found",
    40  		Details: []interface{}{
    41  			map[string]interface{}{
    42  				"status": "not found",
    43  			},
    44  		},
    45  		Header: map[string][]string{"Host": {"localhost"}},
    46  		Body:   `{"error":{"message":"Error message for StatusNotFound."}}`,
    47  		Errors: []googleapi.ErrorItem{
    48  			{
    49  				Reason:  "keyInvalid",
    50  				Message: "Not Found",
    51  			},
    52  		},
    53  	}
    54  
    55  	gerror := Wrap(gcpError)
    56  	assert.Equal(t, gcpError, gerror.Unwrap())
    57  	assert.Equal(t, "not found", gerror.Error())
    58  	ext := gerror.Extensions()
    59  	assert.Equal(t, 404, ext["statusCode"])
    60  	assert.Equal(t, "localhost", ext["host"])
    61  }
    62  

View as plain text