| 16 | ) |
| 17 | |
| 18 | func TestCheck(t *testing.T) { |
| 19 | recorder := tracetest.NewSpanRecorder() |
| 20 | tracer := trace.NewTracerProvider( |
| 21 | trace.WithSpanProcessor(recorder), |
| 22 | ).Tracer("") |
| 23 | |
| 24 | { |
| 25 | _, span := tracer.Start(context.Background(), "") |
| 26 | assert.Assert(t, Check(span, nil)) |
| 27 | span.End() |
| 28 | |
| 29 | spans := recorder.Ended() |
| 30 | assert.Equal(t, len(spans), 1) |
| 31 | assert.Equal(t, len(spans[0].Events()), 0, "expected no events") |
| 32 | } |
| 33 | |
| 34 | { |
| 35 | _, span := tracer.Start(context.Background(), "") |
| 36 | assert.Assert(t, !Check(span, errors.New("msg"))) |
| 37 | span.End() |
| 38 | |
| 39 | spans := recorder.Ended() |
| 40 | assert.Equal(t, len(spans), 2) |
| 41 | assert.Equal(t, len(spans[1].Events()), 1, "expected one event") |
| 42 | |
| 43 | event := spans[1].Events()[0] |
| 44 | assert.Equal(t, event.Name, semconv.ExceptionEventName) |
| 45 | |
| 46 | attrs := event.Attributes |
| 47 | assert.Equal(t, len(attrs), 2) |
| 48 | assert.Equal(t, string(attrs[0].Key), "exception.type") |
| 49 | assert.Equal(t, string(attrs[1].Key), "exception.message") |
| 50 | assert.Equal(t, attrs[0].Value.AsInterface(), "*errors.errorString") |
| 51 | assert.Equal(t, attrs[1].Value.AsInterface(), "msg") |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | func TestEscape(t *testing.T) { |
| 56 | recorder := tracetest.NewSpanRecorder() |