@@ -101,39 +101,6 @@ describe('SentryPropagator', () => {
101
101
} ) ;
102
102
} ) ;
103
103
104
- it ( 'uses scope propagation context over remote spanContext' , ( ) => {
105
- context . with (
106
- trace . setSpanContext ( ROOT_CONTEXT , {
107
- traceId : 'd4cda95b652f4a1592b449d5929fda1b' ,
108
- spanId : '6e0c63257de34c92' ,
109
- traceFlags : TraceFlags . NONE ,
110
- isRemote : true ,
111
- } ) ,
112
- ( ) => {
113
- withScope ( scope => {
114
- scope . setPropagationContext ( {
115
- traceId : 'TRACE_ID' ,
116
- parentSpanId : 'PARENT_SPAN_ID' ,
117
- spanId : 'SPAN_ID' ,
118
- sampled : true ,
119
- } ) ;
120
-
121
- propagator . inject ( context . active ( ) , carrier , defaultTextMapSetter ) ;
122
-
123
- expect ( baggageToArray ( carrier [ SENTRY_BAGGAGE_HEADER ] ) ) . toEqual (
124
- [
125
- 'sentry-environment=production' ,
126
- 'sentry-release=1.0.0' ,
127
- 'sentry-public_key=abc' ,
128
- 'sentry-trace_id=TRACE_ID' ,
129
- ] . sort ( ) ,
130
- ) ;
131
- expect ( carrier [ SENTRY_TRACE_HEADER ] ) . toBe ( 'TRACE_ID-SPAN_ID-1' ) ;
132
- } ) ;
133
- } ,
134
- ) ;
135
- } ) ;
136
-
137
104
it ( 'uses propagation data from current scope if no scope & span is found' , ( ) => {
138
105
const scope = getCurrentScope ( ) ;
139
106
const traceId = scope . getPropagationContext ( ) . traceId ;
@@ -380,8 +347,10 @@ describe('SentryPropagator', () => {
380
347
} ) ;
381
348
} ,
382
349
) ;
350
+ } ) ;
383
351
384
- const carrier2 : Record < string , string > = { } ;
352
+ it ( 'uses remote span with deferred sampling decision over propagation context' , ( ) => {
353
+ const carrier : Record < string , string > = { } ;
385
354
context . with (
386
355
trace . setSpanContext ( ROOT_CONTEXT , {
387
356
traceId : 'd4cda95b652f4a1592b449d5929fda1b' ,
@@ -398,17 +367,53 @@ describe('SentryPropagator', () => {
398
367
sampled : true ,
399
368
} ) ;
400
369
401
- propagator . inject ( context . active ( ) , carrier2 , defaultTextMapSetter ) ;
370
+ propagator . inject ( context . active ( ) , carrier , defaultTextMapSetter ) ;
402
371
403
- expect ( baggageToArray ( carrier2 [ SENTRY_BAGGAGE_HEADER ] ) ) . toEqual (
372
+ expect ( baggageToArray ( carrier [ SENTRY_BAGGAGE_HEADER ] ) ) . toEqual (
373
+ [
374
+ 'sentry-environment=production' ,
375
+ 'sentry-release=1.0.0' ,
376
+ 'sentry-public_key=abc' ,
377
+ 'sentry-trace_id=d4cda95b652f4a1592b449d5929fda1b' ,
378
+ ] . sort ( ) ,
379
+ ) ;
380
+ expect ( carrier [ SENTRY_TRACE_HEADER ] ) . toBe ( 'd4cda95b652f4a1592b449d5929fda1b-6e0c63257de34c92' ) ;
381
+ } ) ;
382
+ } ,
383
+ ) ;
384
+ } ) ;
385
+
386
+ it ( 'uses remote span over propagation context' , ( ) => {
387
+ const carrier : Record < string , string > = { } ;
388
+ context . with (
389
+ trace . setSpanContext ( ROOT_CONTEXT , {
390
+ traceId : 'd4cda95b652f4a1592b449d5929fda1b' ,
391
+ spanId : '6e0c63257de34c92' ,
392
+ traceFlags : TraceFlags . NONE ,
393
+ isRemote : true ,
394
+ traceState : makeTraceState ( { sampled : false } ) ,
395
+ } ) ,
396
+ ( ) => {
397
+ withScope ( scope => {
398
+ scope . setPropagationContext ( {
399
+ traceId : 'TRACE_ID' ,
400
+ parentSpanId : 'PARENT_SPAN_ID' ,
401
+ spanId : 'SPAN_ID' ,
402
+ sampled : true ,
403
+ } ) ;
404
+
405
+ propagator . inject ( context . active ( ) , carrier , defaultTextMapSetter ) ;
406
+
407
+ expect ( baggageToArray ( carrier [ SENTRY_BAGGAGE_HEADER ] ) ) . toEqual (
404
408
[
405
409
'sentry-environment=production' ,
406
410
'sentry-release=1.0.0' ,
407
411
'sentry-public_key=abc' ,
408
- 'sentry-trace_id=TRACE_ID' ,
412
+ 'sentry-sampled=false' ,
413
+ 'sentry-trace_id=d4cda95b652f4a1592b449d5929fda1b' ,
409
414
] . sort ( ) ,
410
415
) ;
411
- expect ( carrier2 [ SENTRY_TRACE_HEADER ] ) . toBe ( 'TRACE_ID-SPAN_ID-1 ' ) ;
416
+ expect ( carrier [ SENTRY_TRACE_HEADER ] ) . toBe ( 'd4cda95b652f4a1592b449d5929fda1b-6e0c63257de34c92-0 ' ) ;
412
417
} ) ;
413
418
} ,
414
419
) ;
0 commit comments