| 55 | } |
| 56 | |
| 57 | func TestContext_ErrWithNilStackMarshaler(t *testing.T) { |
| 58 | // Save original |
| 59 | original := ErrorStackMarshaler |
| 60 | defer func() { ErrorStackMarshaler = original }() |
| 61 | |
| 62 | // Set marshaler to return nil |
| 63 | ErrorStackMarshaler = func(err error) interface{} { |
| 64 | return nil |
| 65 | } |
| 66 | |
| 67 | var buf bytes.Buffer |
| 68 | log := New(&buf).With().Stack().Err(errors.New("test error")).Logger() |
| 69 | |
| 70 | log.Info().Msg("test message") |
| 71 | |
| 72 | got := decodeIfBinaryToString(buf.Bytes()) |
| 73 | want := `{"level":"info","message":"test message"}` + "\n" // No stack or error field because stack marshaler returned nil |
| 74 | if got != want { |
| 75 | t.Errorf("Context.Err() with nil stack marshaler = %q, want %q", got, want) |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | func TestContext_ErrWithStackMarshalerObject(t *testing.T) { |
| 80 | // Save original |