| 566 | } |
| 567 | |
| 568 | func TestEvent_FieldsWithErrorAndStackMarshalerError(t *testing.T) { |
| 569 | // Save original |
| 570 | original := ErrorStackMarshaler |
| 571 | defer func() { ErrorStackMarshaler = original }() |
| 572 | |
| 573 | // Set a mock marshaler that returns an error |
| 574 | ErrorStackMarshaler = func(err error) interface{} { |
| 575 | return errors.New("stack error") |
| 576 | } |
| 577 | |
| 578 | var buf bytes.Buffer |
| 579 | log := New(&buf) |
| 580 | |
| 581 | err := errors.New("test error") |
| 582 | log.Log().Stack().Fields([]interface{}{"error", err}).Msg("test message") |
| 583 | |
| 584 | got := buf.String() |
| 585 | want := `{"error":"test error","stack":"stack error","message":"test message"}` + "\n" |
| 586 | if got != want { |
| 587 | t.Errorf("Event.Fields() with error and stack marshaler error = %q, want %q", got, want) |
| 588 | } |
| 589 | } |
| 590 | |
| 591 | func TestEvent_FieldsWithErrorAndStackMarshalerInterface(t *testing.T) { |
| 592 | // Save original |