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 }