github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/lokifrontend/frontend/transport/handler_test.go (about)

     1  package transport
     2  
     3  import (
     4  	"context"
     5  	"net/http"
     6  	"net/http/httptest"
     7  	"testing"
     8  
     9  	"github.com/pkg/errors"
    10  	"github.com/stretchr/testify/require"
    11  	"github.com/weaveworks/common/httpgrpc"
    12  )
    13  
    14  func TestWriteError(t *testing.T) {
    15  	for _, test := range []struct {
    16  		status int
    17  		err    error
    18  	}{
    19  		{http.StatusInternalServerError, errors.New("unknown")},
    20  		{http.StatusGatewayTimeout, context.DeadlineExceeded},
    21  		{StatusClientClosedRequest, context.Canceled},
    22  		{http.StatusBadRequest, httpgrpc.Errorf(http.StatusBadRequest, "")},
    23  	} {
    24  		t.Run(test.err.Error(), func(t *testing.T) {
    25  			w := httptest.NewRecorder()
    26  			writeError(w, test.err)
    27  			require.Equal(t, test.status, w.Result().StatusCode)
    28  		})
    29  	}
    30  }