@@ -19,6 +19,10 @@ const originalHttpGet = http.get;
19
19
const originalHttpRequest = http . request ;
20
20
21
21
describe ( 'tracing' , ( ) => {
22
+ afterEach ( ( ) => {
23
+ sentryCore . getCurrentHub ( ) . getScope ( ) . setSpan ( undefined ) ;
24
+ } ) ;
25
+
22
26
function createTransactionOnScope (
23
27
customOptions : Partial < NodeClientOptions > = { } ,
24
28
customContext ?: Partial < TransactionContext > ,
@@ -178,21 +182,39 @@ describe('tracing', () => {
178
182
] ) ;
179
183
} ) ;
180
184
185
+ it ( "doesn't attach baggage headers if already defined" , ( ) => {
186
+ nock ( 'http://dogs.are.great' ) . get ( '/' ) . reply ( 200 ) ;
187
+
188
+ createTransactionOnScope ( ) ;
189
+
190
+ const request = http . get ( {
191
+ host : 'http://dogs.are.great/' ,
192
+ headers : {
193
+ 'sentry-trace' : '12312012123120121231201212312012-1231201212312012-0' ,
194
+ baggage : 'sentry-environment=production,sentry-trace_id=12312012123120121231201212312012' ,
195
+ } ,
196
+ } ) ;
197
+ const baggage = request . getHeader ( 'baggage' ) ;
198
+ expect ( baggage ) . toEqual ( 'sentry-environment=production,sentry-trace_id=12312012123120121231201212312012' ) ;
199
+ } ) ;
200
+
181
201
it ( 'generates and uses propagation context to attach baggage and sentry-trace header' , async ( ) => {
182
202
nock ( 'http://dogs.are.great' ) . get ( '/' ) . reply ( 200 ) ;
183
203
204
+ const { traceId } = sentryCore . getCurrentHub ( ) . getScope ( ) . getPropagationContext ( ) ;
205
+
184
206
const request = http . get ( 'http://dogs.are.great/' ) ;
185
207
const sentryTraceHeader = request . getHeader ( 'sentry-trace' ) as string ;
186
208
const baggageHeader = request . getHeader ( 'baggage' ) as string ;
187
209
188
210
const parts = sentryTraceHeader . split ( '-' ) ;
189
211
expect ( parts . length ) . toEqual ( 3 ) ;
190
- expect ( parts [ 0 ] ) . toEqual ( '12312012123120121231201212312012' ) ;
212
+ expect ( parts [ 0 ] ) . toEqual ( traceId ) ;
191
213
expect ( parts [ 1 ] ) . toEqual ( expect . any ( String ) ) ;
192
- expect ( parts [ 2 ] ) . toEqual ( '1 ' ) ;
214
+ expect ( parts [ 2 ] ) . toEqual ( '0 ' ) ;
193
215
194
216
expect ( baggageHeader ) . toEqual (
195
- ' sentry-environment=production,sentry-release=1.0.0,sentry-user_segment=segmentA,sentry-public_key=dogsarebadatkeepingsecrets,sentry-trace_id=12312012123120121231201212312012,sentry-sample_rate=1,sentry-sampled=true' ,
217
+ ` sentry-environment=production,sentry-release=1.0.0,sentry-user_segment=segmentA,sentry-public_key=dogsarebadatkeepingsecrets,sentry-trace_id=${ traceId } ` ,
196
218
) ;
197
219
} ) ;
198
220
0 commit comments