github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/pkg/errors/error_test.go (about)

     1  package errors
     2  
     3  import (
     4  	errorsBase "errors"
     5  
     6  	"net/http"
     7  	"net/http/httptest"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestErrorWithCustomError(t *testing.T) {
    14  	w := httptest.NewRecorder()
    15  	r, _ := http.NewRequest(http.MethodGet, "/hello/test", nil)
    16  	Handler(w, r, New(http.StatusBadRequest, http.StatusText(http.StatusBadRequest)))
    17  
    18  	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
    19  	assert.Equal(t, http.StatusBadRequest, w.Code)
    20  }
    21  
    22  func TestErrorWithDefaultError(t *testing.T) {
    23  	w := httptest.NewRecorder()
    24  	r, _ := http.NewRequest(http.MethodGet, "/hello/test", nil)
    25  	Handler(w, r, errorsBase.New(http.StatusText(http.StatusBadRequest)))
    26  
    27  	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
    28  	assert.Equal(t, http.StatusInternalServerError, w.Code)
    29  }
    30  
    31  func TestErrorNotFound(t *testing.T) {
    32  	w := httptest.NewRecorder()
    33  	r := httptest.NewRequest("GET", "/", nil)
    34  	NotFound(w, r)
    35  
    36  	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
    37  	assert.Equal(t, http.StatusNotFound, w.Code)
    38  }
    39  
    40  func TestRecovery(t *testing.T) {
    41  	w := httptest.NewRecorder()
    42  	r := httptest.NewRequest("GET", "/", nil)
    43  	RecoveryHandler(w, r, ErrInvalidID)
    44  
    45  	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
    46  	assert.Equal(t, http.StatusBadRequest, w.Code)
    47  }