...

Source file src/edge-infra.dev/pkg/edge/iam/apperror/redirect_test.go

Documentation: edge-infra.dev/pkg/edge/iam/apperror

     1  package apperror_test
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"edge-infra.dev/pkg/edge/iam/apperror"
    11  )
    12  
    13  func TestRedirectErrorLogEntry(t *testing.T) {
    14  	re := apperror.NewRedirectError("/path/to/redirect", "some message", errors.New("some error"))
    15  
    16  	code, loc, message := re.Redirect()
    17  	l, buf := testLogger()
    18  	msg := fmt.Sprintf("(%d) redirecting to %v. %v", code, loc, message)
    19  
    20  	l.Error(re, msg)
    21  
    22  	entry := getLogEntry(buf)
    23  	assert.Equal(t, "redirect (some error)", entry["error"])
    24  	assert.Equal(t, "(302) redirecting to /path/to/redirect. some message", entry["message"])
    25  }
    26  
    27  func TestRedirectErrorLogEntryWithoutErr(t *testing.T) {
    28  	re := apperror.NewRedirectError("/path/to/redirect", "strong login is needed", nil)
    29  
    30  	code, location, msg := re.Redirect()
    31  
    32  	l, buf := testLogger()
    33  	errMsg := fmt.Sprintf("(%d) redirecting to `%v`. %v", code, location, msg)
    34  
    35  	l.Error(re, errMsg)
    36  
    37  	entry := getLogEntry(buf)
    38  	assert.Equal(t, "redirect", entry["error"])
    39  	assert.Equal(t, "(302) redirecting to `/path/to/redirect`. strong login is needed", entry["message"])
    40  }
    41  
    42  func TestNewRedirectErrorWithoutErr(t *testing.T) {
    43  	re := apperror.NewRedirectError("/path/to/redirect", "some message", nil)
    44  
    45  	code, loc, _ := re.Redirect()
    46  	assert.Equal(t, 302, code)
    47  	assert.Equal(t, "/path/to/redirect", loc)
    48  	assert.Equal(t, "redirect", re.Error())
    49  }
    50  
    51  func TestNewRedirectErrorWithErr(t *testing.T) {
    52  	re := apperror.NewRedirectError("/path/to/redirect", "some message", errors.New("some error"))
    53  
    54  	code, loc, _ := re.Redirect()
    55  	assert.Equal(t, 302, code)
    56  	assert.Equal(t, "/path/to/redirect", loc)
    57  	assert.Equal(t, "redirect (some error)", re.Error())
    58  }
    59  
    60  func TestWithHTTPStatus(t *testing.T) {
    61  	re := apperror.NewRedirectError("/path/to/redirect", "some message", errors.New("some error")).
    62  		WithHTTPStatus(307)
    63  
    64  	code, loc, _ := re.Redirect()
    65  	assert.Equal(t, 307, code)
    66  	assert.Equal(t, "/path/to/redirect", loc)
    67  	assert.Equal(t, "redirect (some error)", re.Error())
    68  }
    69  

View as plain text