This repository was archived by the owner on Nov 10, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -63,12 +63,15 @@ export class TraceAPI {
63
63
* @returns true if the tracer provider was successfully registered, else false
64
64
*/
65
65
public setGlobalTracerProvider ( provider : TracerProvider ) : boolean {
66
- this . _proxyTracerProvider . setDelegate ( provider ) ;
67
- return registerGlobal (
66
+ const success = registerGlobal (
68
67
API_NAME ,
69
68
this . _proxyTracerProvider ,
70
69
DiagAPI . instance ( )
71
70
) ;
71
+ if ( success ) {
72
+ this . _proxyTracerProvider . setDelegate ( provider ) ;
73
+ }
74
+ return success ;
72
75
}
73
76
74
77
/**
Original file line number Diff line number Diff line change @@ -93,6 +93,18 @@ describe('API', () => {
93
93
assert . deepStrictEqual ( span , dummySpan ) ;
94
94
} ) ;
95
95
96
+ it ( 'should set delegate only on success' , ( ) => {
97
+ assert . strictEqual (
98
+ api . trace . setGlobalTracerProvider ( new TestTracerProvider ( ) ) ,
99
+ true
100
+ ) ;
101
+ assert . strictEqual (
102
+ api . trace . setGlobalTracerProvider ( new NoopTracerProvider ( ) ) ,
103
+ false
104
+ ) ;
105
+ assert . ok ( api . trace . getTracer ( 'name' ) instanceof TestTracer ) ;
106
+ } ) ;
107
+
96
108
class TestTracer extends NoopTracer {
97
109
override startSpan ( name : string , options ?: SpanOptions ) : Span {
98
110
return dummySpan ;
You can’t perform that action at this time.
0 commit comments