Path: blob/main/component/otelcol/receiver/zipkin/zipkin_test.go
4096 views
package zipkin_test12import (3"fmt"4"testing"5"time"67"github.com/grafana/agent/component/otelcol/receiver/zipkin"8"github.com/grafana/agent/pkg/flow/componenttest"9"github.com/grafana/agent/pkg/river"10"github.com/grafana/agent/pkg/util"11"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver"12"github.com/phayes/freeport"13"github.com/stretchr/testify/require"14)1516func TestRun(t *testing.T) {17httpAddr := getFreeAddr(t)1819ctx := componenttest.TestContext(t)20l := util.TestLogger(t)2122ctrl, err := componenttest.NewControllerFromID(l, "otelcol.receiver.zipkin")23require.NoError(t, err)2425cfg := fmt.Sprintf(`26endpoint = "%s"2728output { /* no-op */ }29`, httpAddr)3031var args zipkin.Arguments32require.NoError(t, river.Unmarshal([]byte(cfg), &args))3334go func() {35err := ctrl.Run(ctx, args)36require.NoError(t, err)37}()3839require.NoError(t, ctrl.WaitRunning(time.Second))40}4142func TestArguments_UnmarshalRiver(t *testing.T) {43t.Run("grpc", func(t *testing.T) {44httpAddr := getFreeAddr(t)45in := fmt.Sprintf(`46endpoint = "%s"47cors {48allowed_origins = ["https://*.test.com", "https://test.com"]49}5051parse_string_tags = true5253output { /* no-op */ }54`, httpAddr)5556var args zipkin.Arguments57require.NoError(t, river.Unmarshal([]byte(in), &args))58ext, err := args.Convert()59require.NoError(t, err)60otelArgs, ok := (ext).(*zipkinreceiver.Config)6162require.True(t, ok)6364// Check the arguments65require.Equal(t, otelArgs.HTTPServerSettings.Endpoint, httpAddr)66require.Equal(t, len(otelArgs.HTTPServerSettings.CORS.AllowedOrigins), 2)67require.Equal(t, otelArgs.HTTPServerSettings.CORS.AllowedOrigins[0], "https://*.test.com")68require.Equal(t, otelArgs.HTTPServerSettings.CORS.AllowedOrigins[1], "https://test.com")69require.Equal(t, otelArgs.ParseStringTags, true)70})71}7273func getFreeAddr(t *testing.T) string {74t.Helper()7576portNumber, err := freeport.GetFreePort()77require.NoError(t, err)7879return fmt.Sprintf("localhost:%d", portNumber)80}818283