| 77 | } |
| 78 | |
| 79 | func TestOTelSpanLogger_Error(t *testing.T) { |
| 80 | t.Cleanup(spanExporter.Reset) |
| 81 | |
| 82 | logger := log.NewNopLogger() |
| 83 | resolver := tenant.NewMultiResolver() |
| 84 | span, _ := NewOTel(context.Background(), logger, tracer, "test", resolver, "bar") |
| 85 | |
| 86 | require.Error(t, span.Error(errors.New("err"))) |
| 87 | require.NoError(t, span.Error(nil)) |
| 88 | span.Finish() |
| 89 | |
| 90 | spans := spanExporter.GetSpans() |
| 91 | require.Len(t, spans, 1, "There should be exactly one span after the span is finished") |
| 92 | exportedSpan := spans[0] |
| 93 | require.Len(t, exportedSpan.Events, 2, "There should be one log and one exception event") |
| 94 | require.Equal(t, codes.Error, exportedSpan.Status.Code) |
| 95 | require.Equal(t, "log", exportedSpan.Events[0].Name) |
| 96 | require.Equal(t, "exception", exportedSpan.Events[1].Name) |
| 97 | } |
| 98 | |
| 99 | func TestOTelSpanLogger_SetError(t *testing.T) { |
| 100 | t.Cleanup(spanExporter.Reset) |