@@ -34,7 +34,12 @@ import {
34
34
describe ( 'JaegerPropagator' , ( ) => {
35
35
const jaegerPropagator = new JaegerPropagator ( ) ;
36
36
const customHeader = 'new-header' ;
37
+ const customBaggageHeaderPrefix = 'custom-baggage-header-prefix' ;
37
38
const customJaegerPropagator = new JaegerPropagator ( customHeader ) ;
39
+ const customJaegerPropagatorWithConfig = new JaegerPropagator ( {
40
+ customTraceHeader : customHeader ,
41
+ customBaggageHeaderPrefix,
42
+ } ) ;
38
43
let carrier : { [ key : string ] : unknown } ;
39
44
40
45
beforeEach ( ( ) => {
@@ -114,6 +119,28 @@ describe('JaegerPropagator', () => {
114
119
encodeURIComponent ( '%id%' )
115
120
) ;
116
121
} ) ;
122
+
123
+ it ( 'should propagate baggage with custom prefix with url encoded values' , ( ) => {
124
+ const baggage = propagation . createBaggage ( {
125
+ test : {
126
+ value : '1' ,
127
+ } ,
128
+ myuser : {
129
+ value : '%id%' ,
130
+ } ,
131
+ } ) ;
132
+
133
+ customJaegerPropagatorWithConfig . inject (
134
+ propagation . setBaggage ( ROOT_CONTEXT , baggage ) ,
135
+ carrier ,
136
+ defaultTextMapSetter
137
+ ) ;
138
+ assert . strictEqual ( carrier [ `${ customBaggageHeaderPrefix } -test` ] , '1' ) ;
139
+ assert . strictEqual (
140
+ carrier [ `${ customBaggageHeaderPrefix } -myuser` ] ,
141
+ encodeURIComponent ( '%id%' )
142
+ ) ;
143
+ } ) ;
117
144
} ) ;
118
145
119
146
describe ( '.extract()' , ( ) => {
@@ -215,6 +242,21 @@ describe('JaegerPropagator', () => {
215
242
assert ( secondEntry . value === '%id%' ) ;
216
243
} ) ;
217
244
245
+ it ( 'should extract baggage with custom prefix from carrier' , ( ) => {
246
+ carrier [ `${ customBaggageHeaderPrefix } -test` ] = 'value' ;
247
+ carrier [ `${ customBaggageHeaderPrefix } -myuser` ] = '%25id%25' ;
248
+ const extractedBaggage = propagation . getBaggage (
249
+ customJaegerPropagatorWithConfig . extract ( ROOT_CONTEXT , carrier , defaultTextMapGetter )
250
+ ) ;
251
+
252
+ const firstEntry = extractedBaggage ?. getEntry ( 'test' ) ;
253
+ assert ( typeof firstEntry !== 'undefined' ) ;
254
+ assert ( firstEntry . value === 'value' ) ;
255
+ const secondEntry = extractedBaggage ?. getEntry ( 'myuser' ) ;
256
+ assert ( typeof secondEntry !== 'undefined' ) ;
257
+ assert ( secondEntry . value === '%id%' ) ;
258
+ } ) ;
259
+
218
260
it ( 'should extract baggage from carrier and not override current one' , ( ) => {
219
261
carrier [ `${ UBER_BAGGAGE_HEADER_PREFIX } -test` ] = 'value' ;
220
262
carrier [ `${ UBER_BAGGAGE_HEADER_PREFIX } -myuser` ] = '%25id%25' ;
@@ -266,6 +308,9 @@ describe('JaegerPropagator', () => {
266
308
it ( 'returns the customized header if customized' , ( ) => {
267
309
assert . deepStrictEqual ( customJaegerPropagator . fields ( ) , [ customHeader ] ) ;
268
310
} ) ;
311
+ it ( 'returns the customized header if customized with config' , ( ) => {
312
+ assert . deepStrictEqual ( customJaegerPropagatorWithConfig . fields ( ) , [ customHeader ] ) ;
313
+ } ) ;
269
314
} ) ;
270
315
271
316
it ( 'should fail gracefully on bad responses from getter' , ( ) => {
0 commit comments