loginterceptor_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package internal
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestLogInterceptor(t *testing.T) {
  9. svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  10. }))
  11. defer svr.Close()
  12. req, err := http.NewRequest(http.MethodGet, svr.URL, nil)
  13. assert.Nil(t, err)
  14. req, handler := LogInterceptor(req)
  15. resp, err := http.DefaultClient.Do(req)
  16. handler(resp, err)
  17. assert.Nil(t, err)
  18. assert.Equal(t, http.StatusOK, resp.StatusCode)
  19. }
  20. func TestLogInterceptorServerError(t *testing.T) {
  21. svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  22. w.WriteHeader(http.StatusInternalServerError)
  23. }))
  24. defer svr.Close()
  25. req, err := http.NewRequest(http.MethodGet, svr.URL, nil)
  26. assert.Nil(t, err)
  27. req, handler := LogInterceptor(req)
  28. resp, err := http.DefaultClient.Do(req)
  29. handler(resp, err)
  30. assert.Nil(t, err)
  31. assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
  32. }
  33. func TestLogInterceptorServerClosed(t *testing.T) {
  34. svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  35. w.WriteHeader(http.StatusInternalServerError)
  36. }))
  37. defer svr.Close()
  38. req, err := http.NewRequest(http.MethodGet, svr.URL, nil)
  39. assert.Nil(t, err)
  40. svr.Close()
  41. req, handler := LogInterceptor(req)
  42. resp, err := http.DefaultClient.Do(req)
  43. handler(resp, err)
  44. assert.NotNil(t, err)
  45. assert.Nil(t, resp)
  46. }