golift.io/starr@v1.0.0/http_test.go (about)

     1  package starr_test
     2  
     3  import (
     4  	"net/http"
     5  	"path"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"golift.io/starr"
    10  )
    11  
    12  func TestSetAPIPath(t *testing.T) {
    13  	t.Parallel()
    14  
    15  	api := path.Join("/", starr.API)
    16  
    17  	// These must all return the same value...
    18  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("v1/test"))     // no slashes.
    19  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("v1/test/"))    // trailing slash.
    20  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("/v1/test"))    // leading slash.
    21  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("/v1/test/"))   // both slashes.
    22  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("api/v1/test")) // ...and repeat.
    23  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("api/v1/test/"))
    24  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("/api/v1/test"))
    25  	assert.Equal(t, api+"/v1/test", starr.SetAPIPath("/api/v1/test/"))
    26  
    27  	// These must all return the same value...
    28  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("v1/test/another/level"))
    29  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("v1/test/another/level/"))
    30  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("/v1/test/another/level"))
    31  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("/v1/test/another/level/"))
    32  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("api/v1/test/another/level"))
    33  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("api/v1/test/another/level/"))
    34  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("/api/v1/test/another/level"))
    35  	assert.Equal(t, api+"/v1/test/another/level", starr.SetAPIPath("/api/v1/test/another/level/"))
    36  }
    37  
    38  func TestReqError(t *testing.T) {
    39  	t.Parallel()
    40  
    41  	err := &starr.ReqError{Code: http.StatusForbidden}
    42  	assert.ErrorIs(t, err, starr.ErrInvalidStatusCode)
    43  	assert.Equal(t, "invalid status code, 403 >= 300", err.Error())
    44  
    45  	err.Body = []byte("Some Body")
    46  	assert.Equal(t, "invalid status code, 403 >= 300, Some Body", err.Error())
    47  
    48  	err.Msg = "Some message"
    49  	assert.Equal(t, "invalid status code, 403 >= 300, Some message", err.Error())
    50  
    51  	err.Name = "Varname"
    52  	assert.Equal(t, "invalid status code, 403 >= 300, Varname: Some message", err.Error())
    53  }