38 lines
888 B
Go
38 lines
888 B
Go
package logging
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
|
"go.opentelemetry.io/otel/sdk/trace/tracetest"
|
|
)
|
|
|
|
func TestNewRejectsInvalidLogLevel(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := New("verbose")
|
|
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestTraceFieldsFromContextReturnsTraceAndSpanIDs(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
recorder := tracetest.NewSpanRecorder()
|
|
provider := sdktrace.NewTracerProvider(sdktrace.WithSpanProcessor(recorder))
|
|
|
|
ctx, span := provider.Tracer("test").Start(context.Background(), "operation")
|
|
defer span.End()
|
|
|
|
fields := TraceFieldsFromContext(ctx)
|
|
|
|
require.Len(t, fields, 2)
|
|
assert.Equal(t, "otel_trace_id", fields[0].Key)
|
|
assert.Equal(t, "otel_span_id", fields[1].Key)
|
|
assert.NotEmpty(t, fields[0].String)
|
|
assert.NotEmpty(t, fields[1].String)
|
|
}
|