github.com/ssgreg/logf@v1.4.1/error_test.go (about) 1 package logf 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestDefaultErrorEncoderWithPlainError(t *testing.T) { 11 e := errors.New("simple error") 12 enc := newTestFieldEncoder() 13 DefaultErrorEncoder("error", e, enc) 14 15 assert.EqualValues(t, e.Error(), enc.result["error"]) 16 assert.EqualValues(t, 1, len(enc.result)) 17 } 18 19 func TestDefaultErrorEncoderWithVerboseError(t *testing.T) { 20 e := &verboseError{"short", "verbose"} 21 enc := newTestFieldEncoder() 22 DefaultErrorEncoder("error", e, enc) 23 24 assert.EqualValues(t, 2, len(enc.result)) 25 assert.EqualValues(t, e.short, enc.result["error"]) 26 assert.EqualValues(t, e.full, enc.result["error.verbose"]) 27 } 28 29 func TestDefaultErrorEncoderWithNil(t *testing.T) { 30 enc := newTestFieldEncoder() 31 DefaultErrorEncoder("error", nil, enc) 32 33 assert.EqualValues(t, 1, len(enc.result)) 34 assert.EqualValues(t, "<nil>", enc.result["error"]) 35 } 36 37 func TestNewErrorEncoderWithCustomVerboseFieldSuffix(t *testing.T) { 38 e := &verboseError{"short", "verbose"} 39 enc := newTestFieldEncoder() 40 NewErrorEncoder(ErrorEncoderConfig{ 41 VerboseFieldSuffix: "-verbose", 42 })("error", e, enc) 43 44 assert.EqualValues(t, 2, len(enc.result)) 45 assert.EqualValues(t, e.short, enc.result["error"]) 46 assert.EqualValues(t, e.full, enc.result["error-verbose"]) 47 } 48 49 func TestNewErrorEncoderWithNoVerboseField(t *testing.T) { 50 e := &verboseError{"short", "verbose"} 51 enc := newTestFieldEncoder() 52 NewErrorEncoder(ErrorEncoderConfig{ 53 NoVerboseField: true, 54 })("error", e, enc) 55 56 assert.EqualValues(t, 1, len(enc.result)) 57 assert.EqualValues(t, e.short, enc.result["error"]) 58 }