9
9
"testing"
10
10
11
11
"go.opentelemetry.io/otel/trace"
12
+ "go.opentelemetry.io/otel/trace/noop"
12
13
13
14
"github.com/go-chi/chi/v5"
14
15
"github.com/stretchr/testify/require"
@@ -17,22 +18,32 @@ import (
17
18
"github.com/coder/coder/v2/testutil"
18
19
)
19
20
20
- type fakeTracer struct {
21
+ type fakeTracerProvider struct {
22
+ noop.TracerProvider
21
23
startCalled int64
22
24
}
23
25
26
+ type fakeTracer struct {
27
+ noop.Tracer
28
+ prov * fakeTracerProvider
29
+ }
30
+
24
31
var (
25
- _ trace.TracerProvider = & fakeTracer {}
32
+ _ trace.TracerProvider = & fakeTracerProvider {}
26
33
_ trace.Tracer = & fakeTracer {}
27
34
)
28
35
36
+ func (f * fakeTracer ) Start (ctx context.Context , str string , opts ... trace.SpanStartOption ) (context.Context , trace.Span ) {
37
+ return f .prov .Start (ctx , str , opts ... )
38
+ }
39
+
29
40
// Tracer implements trace.TracerProvider.
30
- func (f * fakeTracer ) Tracer (_ string , _ ... trace.TracerOption ) trace.Tracer {
31
- return f
41
+ func (f * fakeTracerProvider ) Tracer (_ string , _ ... trace.TracerOption ) trace.Tracer {
42
+ return & fakeTracer { prov : f }
32
43
}
33
44
34
45
// Start implements trace.Tracer.
35
- func (f * fakeTracer ) Start (ctx context.Context , _ string , _ ... trace.SpanStartOption ) (context.Context , trace.Span ) {
46
+ func (f * fakeTracerProvider ) Start (ctx context.Context , _ string , _ ... trace.SpanStartOption ) (context.Context , trace.Span ) {
36
47
atomic .AddInt64 (& f .startCalled , 1 )
37
48
return ctx , tracing .NoopSpan
38
49
}
@@ -76,7 +87,7 @@ func Test_Middleware(t *testing.T) {
76
87
t .Run (name , func (t * testing.T ) {
77
88
t .Parallel ()
78
89
79
- fake := & fakeTracer {}
90
+ fake := & fakeTracerProvider {}
80
91
81
92
rw := & tracing.StatusWriter {ResponseWriter : httptest .NewRecorder ()}
82
93
r := httptest .NewRequest ("GET" , c .path , nil )
0 commit comments