@@ -85,7 +85,7 @@ describe('TextMapPropagator', () => {
85
85
expect ( carrier ) . to . have . property ( 'x-datadog-trace-id' , '123' )
86
86
expect ( carrier ) . to . have . property ( 'x-datadog-parent-id' , '456' )
87
87
expect ( carrier ) . to . have . property ( 'ot-baggage-foo' , 'bar' )
88
- expect ( carrier ) . to . have . property ( 'baggage' , 'foo=bar' )
88
+ expect ( carrier . baggage ) . to . be . undefined
89
89
} )
90
90
91
91
it ( 'should handle non-string values' , ( ) => {
@@ -104,55 +104,35 @@ describe('TextMapPropagator', () => {
104
104
expect ( carrier [ 'ot-baggage-bool' ] ) . to . equal ( 'true' )
105
105
expect ( carrier [ 'ot-baggage-array' ] ) . to . equal ( 'foo,bar' )
106
106
expect ( carrier [ 'ot-baggage-object' ] ) . to . equal ( '[object Object]' )
107
- expect ( carrier . baggage ) . to . be . equal ( 'number=1.23,bool=true,array=foo%2Cbar,object=%5Bobject%20Object%5D' )
107
+ expect ( carrier . baggage ) . to . be . undefined
108
108
} )
109
109
110
110
it ( 'should handle special characters in baggage' , ( ) => {
111
111
const carrier = { }
112
- const baggageItems = {
113
- '",;\\()/:<=>?@[]{}🐶é我' : '",;\\🐶é我'
114
- }
115
- const spanContext = createContext ( { baggageItems } )
116
-
117
- propagator . inject ( spanContext , carrier )
112
+ setBaggageItem ( '",;\\()/:<=>?@[]{}🐶é我' , '",;\\🐶é我' )
113
+ propagator . inject ( undefined , carrier )
118
114
// eslint-disable-next-line @stylistic/max-len
119
115
expect ( carrier . baggage ) . to . be . equal ( '%22%2C%3B%5C%28%29%2F%3A%3C%3D%3E%3F%40%5B%5D%7B%7D%F0%9F%90%B6%C3%A9%E6%88%91=%22%2C%3B%5C%F0%9F%90%B6%C3%A9%E6%88%91' )
120
116
} )
121
117
122
118
it ( 'should drop excess baggage items when there are too many pairs' , ( ) => {
123
119
const carrier = { }
124
- const baggageItems = { }
125
120
for ( let i = 0 ; i < config . baggageMaxItems + 1 ; i ++ ) {
126
- baggageItems [ `key-${ i } ` ] = i
121
+ setBaggageItem ( `key-${ i } ` , i )
127
122
}
128
- const spanContext = createContext ( { baggageItems } )
129
-
130
- propagator . inject ( spanContext , carrier )
123
+ propagator . inject ( undefined , carrier )
131
124
expect ( carrier . baggage . split ( ',' ) . length ) . to . equal ( config . baggageMaxItems )
132
125
} )
133
126
134
127
it ( 'should drop excess baggage items when the resulting baggage header contains many bytes' , ( ) => {
135
128
const carrier = { }
136
- const baggageItems = {
137
- raccoon : 'chunky' ,
138
- foo : Buffer . alloc ( config . baggageMaxBytes ) . toString ( )
139
- }
140
- const spanContext = createContext ( { baggageItems } )
129
+ setBaggageItem ( 'raccoon' , 'chunky' )
130
+ setBaggageItem ( 'foo' , Buffer . alloc ( config . baggageMaxBytes ) . toString ( ) )
141
131
142
- propagator . inject ( spanContext , carrier )
132
+ propagator . inject ( undefined , carrier )
143
133
expect ( carrier . baggage ) . to . equal ( 'raccoon=chunky' )
144
134
} )
145
135
146
- it ( 'should inject baggage items when spanContext is null' , ( ) => {
147
- const carrier = { }
148
- const spanContext = null
149
- removeAllBaggageItems ( )
150
- setBaggageItem ( 'spring' , 'blossom' )
151
-
152
- propagator . inject ( spanContext , carrier )
153
- expect ( carrier . baggage ) . to . equal ( 'spring=blossom' )
154
- } )
155
-
156
136
it ( 'should inject an existing sampling priority' , ( ) => {
157
137
const carrier = { }
158
138
const spanContext = createContext ( {
@@ -419,6 +399,26 @@ describe('TextMapPropagator', () => {
419
399
expect ( spanContext . toSpanId ( ) ) . to . equal ( carrier [ 'x-datadog-parent-id' ] )
420
400
expect ( spanContext . _baggageItems . foo ) . to . equal ( carrier [ 'ot-baggage-foo' ] )
421
401
expect ( spanContext . _baggageItems ) . to . deep . equal ( { foo : 'bar' } )
402
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { foo : 'bar' } )
403
+ expect ( spanContext . _isRemote ) . to . equal ( true )
404
+ } )
405
+
406
+ it ( 'should extract opentracing baggage when baggage is not a propagation style ' , ( ) => {
407
+ config = new Config ( {
408
+ tracePropagationStyle : {
409
+ extract : [ 'datadog' , 'tracecontext' ] ,
410
+ inject : [ 'datadog' , 'tracecontext' ]
411
+ }
412
+ } )
413
+ propagator = new TextMapPropagator ( config )
414
+ const carrier = textMap
415
+ const spanContext = propagator . extract ( carrier )
416
+
417
+ expect ( spanContext . toTraceId ( ) ) . to . equal ( carrier [ 'x-datadog-trace-id' ] )
418
+ expect ( spanContext . toSpanId ( ) ) . to . equal ( carrier [ 'x-datadog-parent-id' ] )
419
+ expect ( spanContext . _baggageItems . foo ) . to . equal ( carrier [ 'ot-baggage-foo' ] )
420
+ expect ( spanContext . _baggageItems ) . to . deep . equal ( { foo : 'bar' } )
421
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { } )
422
422
expect ( spanContext . _isRemote ) . to . equal ( true )
423
423
} )
424
424
@@ -431,7 +431,8 @@ describe('TextMapPropagator', () => {
431
431
baggage : '%22%2C%3B%5C%28%29%2F%3A%3C%3D%3E%3F%40%5B%5D%7B%7D=%22%2C%3B%5C'
432
432
}
433
433
const spanContext = propagator . extract ( carrier )
434
- expect ( spanContext . _baggageItems ) . to . deep . equal ( { '",;\\()/:<=>?@[]{}' : '",;\\' } )
434
+ expect ( spanContext . _baggageItems ) . to . deep . equal ( { } )
435
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { '",;\\()/:<=>?@[]{}' : '",;\\' } )
435
436
} )
436
437
437
438
it ( 'should not extract baggage when the header is malformed' , ( ) => {
@@ -442,6 +443,7 @@ describe('TextMapPropagator', () => {
442
443
}
443
444
const spanContextA = propagator . extract ( carrierA )
444
445
expect ( spanContextA . _baggageItems ) . to . deep . equal ( { } )
446
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { } )
445
447
446
448
const carrierB = {
447
449
'x-datadog-trace-id' : '123' ,
@@ -450,6 +452,7 @@ describe('TextMapPropagator', () => {
450
452
}
451
453
const spanContextB = propagator . extract ( carrierB )
452
454
expect ( spanContextB . _baggageItems ) . to . deep . equal ( { } )
455
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { } )
453
456
454
457
const carrierC = {
455
458
'x-datadog-trace-id' : '123' ,
@@ -458,6 +461,7 @@ describe('TextMapPropagator', () => {
458
461
}
459
462
const spanContextC = propagator . extract ( carrierC )
460
463
expect ( spanContextC . _baggageItems ) . to . deep . equal ( { } )
464
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { } )
461
465
462
466
const carrierD = {
463
467
'x-datadog-trace-id' : '123' ,
@@ -466,6 +470,7 @@ describe('TextMapPropagator', () => {
466
470
}
467
471
const spanContextD = propagator . extract ( carrierD )
468
472
expect ( spanContextD . _baggageItems ) . to . deep . equal ( { } )
473
+ expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { } )
469
474
} )
470
475
471
476
it ( 'should add baggage items to span tags' , ( ) => {
@@ -581,7 +586,7 @@ describe('TextMapPropagator', () => {
581
586
baggage : 'foo=bar'
582
587
}
583
588
const spanContext = propagator . extract ( carrier )
584
- expect ( spanContext ) . to . be . null
589
+ expect ( spanContext ) . to . equal ( null )
585
590
expect ( getBaggageItem ( 'foo' ) ) . to . equal ( 'bar' )
586
591
expect ( getAllBaggageItems ( ) ) . to . deep . equal ( { foo : 'bar' } )
587
592
} )
0 commit comments