github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/features/feed/delivery/http/handlers/handlers_test.go (about) 1 package handlers_test 2 3 import ( 4 "github.com/k0marov/go-socnet/core/general/core_values" 5 helpers "github.com/k0marov/go-socnet/core/helpers/http_test_helpers" 6 . "github.com/k0marov/go-socnet/core/helpers/test_helpers" 7 "github.com/k0marov/go-socnet/features/feed/delivery/http/handlers" 8 "github.com/k0marov/go-socnet/features/feed/delivery/http/responses" 9 "io" 10 "net/http" 11 "net/http/httptest" 12 "testing" 13 ) 14 15 func createRequestWithCount(count string, body io.Reader) *http.Request { 16 return httptest.NewRequest(http.MethodOptions, "/handler-should-not-care?count="+count, body) 17 } 18 19 func TestFeedHandler(t *testing.T) { 20 count := RandomString() 21 posts := []string{RandomString(), RandomString()} 22 caller := RandomAuthUser() 23 24 helpers.BaseTest401(t, handlers.NewFeedHandler(nil)) 25 t.Run("happy case", func(t *testing.T) { 26 getter := func(countStr string, callerId core_values.UserId) ([]string, error) { 27 if countStr == count && callerId == caller.Id { 28 return posts, nil 29 } 30 panic("unexpected args") 31 } 32 response := httptest.NewRecorder() 33 request := helpers.AddAuthDataToRequest(createRequestWithCount(count, nil), caller) 34 handlers.NewFeedHandler(getter).ServeHTTP(response, request) 35 AssertJSONData(t, response, responses.FeedResponse{Posts: posts}) 36 }) 37 helpers.BaseTestServiceErrorHandling(t, func(err error, response *httptest.ResponseRecorder) { 38 getter := func(string, core_values.UserId) ([]string, error) { 39 return []string{}, err 40 } 41 request := helpers.AddAuthDataToRequest(createRequestWithCount(count, nil), caller) 42 handlers.NewFeedHandler(getter).ServeHTTP(response, request) 43 }) 44 }