github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/meta/test/meta_test.go (about) 1 package test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 "google.golang.org/grpc/metadata" 9 10 "github.com/ydb-platform/ydb-go-sdk/v3/internal/credentials" 11 internal "github.com/ydb-platform/ydb-go-sdk/v3/internal/meta" 12 "github.com/ydb-platform/ydb-go-sdk/v3/internal/version" 13 "github.com/ydb-platform/ydb-go-sdk/v3/meta" 14 "github.com/ydb-platform/ydb-go-sdk/v3/trace" 15 ) 16 17 func TestMetaRequiredHeaders(t *testing.T) { 18 m := internal.New( 19 "database", 20 credentials.NewAccessTokenCredentials("token"), 21 &trace.Driver{}, 22 internal.WithRequestTypeOption("requestType"), 23 internal.WithApplicationNameOption("test app"), 24 ) 25 26 ctx := context.Background() 27 28 ctx = meta.WithTraceID(ctx, "traceID") 29 30 ctx = metadata.AppendToOutgoingContext(ctx, "some-user-header", "some-user-value") 31 32 ctx, err := m.Context(ctx) 33 if err != nil { 34 t.Fatal(err) 35 } 36 md, has := metadata.FromOutgoingContext(ctx) 37 if !has { 38 t.Fatal("no outgoing metadata") 39 } 40 41 require.Equal(t, []string{"database"}, md.Get(internal.HeaderDatabase)) 42 require.Equal(t, []string{"requestType"}, md.Get(internal.HeaderRequestType)) 43 require.Equal(t, []string{"token"}, md.Get(internal.HeaderTicket)) 44 require.NotEmpty(t, md.Get(internal.HeaderClientPid)) 45 require.NotEmpty(t, md.Get(internal.HeaderClientPid)[0]) 46 require.Equal(t, []string{"test app"}, md.Get(internal.HeaderApplicationName)) 47 require.Equal(t, []string{"traceID"}, md.Get(internal.HeaderTraceID)) 48 require.Equal(t, []string{ 49 "ydb-go-sdk/" + version.Major + "." + version.Minor + "." + version.Patch, 50 }, md.Get(internal.HeaderVersion)) 51 require.Equal(t, []string{"some-user-value"}, md.Get("some-user-header")) 52 }