package tracing // Tests for tracing helpers invoking operations and propagating errors. import ( "context" "errors" "testing" "github.com/stretchr/testify/require" ) // TestTraceServiceOperation verifies tracing wraps a service operation and returns errors. func TestTraceServiceOperation(t *testing.T) { tracer, err := NewTracer(DefaultConfig()) require.NoError(t, err) expected := errors.New("boom") err = TraceServiceOperation(context.Background(), tracer, "svc", "op", func(ctx context.Context) error { return expected }) require.Equal(t, expected, err) } // TestTraceDatabaseOperation verifies tracing wraps a database operation and calls the function. func TestTraceDatabaseOperation(t *testing.T) { tracer, err := NewTracer(DefaultConfig()) require.NoError(t, err) called := false err = TraceDatabaseOperation(context.Background(), tracer, "select", "users", func(ctx context.Context) error { called = true return nil }) require.NoError(t, err) require.True(t, called) }