github.com/blend/go-sdk@v1.20240719.1/tracing/oauthtrace/tracer_test.go (about) 1 /* 2 3 Copyright (c) 2024 - Present. Blend Labs, Inc. All rights reserved 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file. 5 6 */ 7 8 package oauthtrace 9 10 import ( 11 "context" 12 "testing" 13 14 opentracingExt "github.com/opentracing/opentracing-go/ext" 15 "github.com/opentracing/opentracing-go/mocktracer" 16 "golang.org/x/oauth2" 17 18 "github.com/blend/go-sdk/assert" 19 "github.com/blend/go-sdk/oauth" 20 "github.com/blend/go-sdk/tracing" 21 ) 22 23 func TestStart(t *testing.T) { 24 assert := assert.New(t) 25 mockTracer := mocktracer.New() 26 oauthTracer := Tracer(mockTracer) 27 28 finisher := oauthTracer.Start(context.Background(), &oauth2.Config{RedirectURL: "/admin"}) 29 span := finisher.(oauthTraceFinisher).span 30 mockSpan := span.(*mocktracer.MockSpan) 31 assert.Equal(tracing.OperationHTTPRequestOutgoing, mockSpan.OperationName) 32 33 assert.Len(mockSpan.Tags(), 3) 34 assert.Equal(opentracingExt.SpanKindRPCClientEnum, mockSpan.Tags()[string(opentracingExt.SpanKind)]) 35 assert.Equal(tracing.SpanTypeHTTP, mockSpan.Tags()[tracing.TagKeySpanType]) 36 assert.True(mockSpan.FinishTime.IsZero()) 37 } 38 39 func TestFinish(t *testing.T) { 40 assert := assert.New(t) 41 mockTracer := mocktracer.New() 42 oauthTracer := Tracer(mockTracer) 43 44 finisher := oauthTracer.Start(context.Background(), &oauth2.Config{RedirectURL: "/admin"}) 45 finisher.Finish(context.Background(), &oauth2.Config{RedirectURL: "/admin"}, &oauth.Result{Profile: oauth.Profile{Email: "example-string@blend.com"}}, nil) 46 47 span := finisher.(oauthTraceFinisher).span 48 mockSpan := span.(*mocktracer.MockSpan) 49 assert.Equal("example-string@blend.com", mockSpan.Tags()[tracing.TagKeyOAuthUsername]) 50 assert.False(mockSpan.FinishTime.IsZero()) 51 }