| 299 | } |
| 300 | |
| 301 | func TestWithErr(t *testing.T) { |
| 302 | var err error = nil |
| 303 | out := &bytes.Buffer{} |
| 304 | ctx := New(out).With(). |
| 305 | Fields(map[string]interface{}{ |
| 306 | "nil": nil, |
| 307 | "nilerror": err, |
| 308 | "error": errors.New("some error"), |
| 309 | "loggable": loggableError{errors.New("loggable")}, |
| 310 | "non-loggable": nonLoggableError{fmt.Errorf("oops"), 401}, |
| 311 | }) |
| 312 | log := ctx.Logger() |
| 313 | log.Log().Msg("") |
| 314 | if got, want := decodeIfBinaryToString(out.Bytes()), `{"error":"some error","loggable":{"l":"LOGGABLE"},"nil":null,"nilerror":null,"non-loggable":"oops"}`+"\n"; got != want { |
| 315 | t.Errorf("invalid log output:\ngot: %v\nwant: %v", got, want) |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | func TestFieldsErr(t *testing.T) { |
| 320 | var err error = nil |