package api import ( "context" "testing" "github.com/stretchr/testify/assert" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/trace" ) func Test_AddTraceParentAndStateToContext(t *testing.T) { expectedTraceParent := "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01" expectedTraceState := "key1=value1,key2=value2" ctx := AddTraceParentAndStateToContext( context.Background(), expectedTraceParent, expectedTraceState) span := trace.SpanFromContext(ctx) assert.Equal(t, "00f067aa0ba902b7", span.SpanContext().SpanID().String()) assert.Equal(t, "4bf92f3577b34da6a3ce929d0e0e4736", span.SpanContext().TraceID().String()) } func Test_TraceParentAndStateFromContext(t *testing.T) { tracer := otel.Tracer("test") expectedTraceParent := "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01" expectedTraceState := "key1=value1,key2=value2" ctx := AddTraceParentAndStateToContext( context.Background(), expectedTraceParent, expectedTraceState) ctx, span := tracer.Start(ctx, "test") traceParent, traceState := TraceParentAndStateFromContext(ctx) assert.Equal(t, expectedTraceParent, traceParent) assert.Equal(t, expectedTraceState, traceState) assert.Equal(t, "00f067aa0ba902b7", span.SpanContext().SpanID().String()) assert.Equal(t, "4bf92f3577b34da6a3ce929d0e0e4736", span.SpanContext().TraceID().String()) }