@@ -67,4 +67,57 @@ describe('SpanProcessor()', function () {
6767
6868 done ( ) ;
6969 } ) ;
70+
71+ it ( 'should transform spans' , function ( done ) {
72+ const tracingOptions = {
73+ transformSpan : ( { span} ) => {
74+ span . attributes [ 'test-group' ] = 'blue' ;
75+ span . resource . attributes [ 'rollbar.environment' ] = 'prod-3' ;
76+ } ,
77+ } ;
78+ const exporter = new SpanExporter ( ) ;
79+ const spanProcessor = new SpanProcessor ( exporter , tracingOptions ) ;
80+
81+ expect ( spanProcessor . pendingSpans . size ) . to . equal ( 0 ) ;
82+
83+ const overrides = {
84+ spanProcessor : spanProcessor ,
85+ } ;
86+ const span = new Span ( spanOptions ( overrides ) ) ;
87+
88+ expect ( spanProcessor . pendingSpans . size ) . to . equal ( 1 ) ;
89+
90+ span . end ( ) ;
91+
92+ expect ( span . span . attributes [ 'test-group' ] ) . to . equal ( 'blue' ) ;
93+ expect ( span . span . resource . attributes [ 'rollbar.environment' ] ) . to . equal ( 'prod-3' ) ;
94+ expect ( spanProcessor . pendingSpans . size ) . to . equal ( 0 ) ;
95+
96+ done ( ) ;
97+ } ) ;
98+
99+ it ( 'should catch exception in transformSpan' , function ( done ) {
100+ const tracingOptions = {
101+ transformSpan : ( { span} ) => {
102+ throw new Error ( 'test error' ) ;
103+ } ,
104+ } ;
105+ const exporter = new SpanExporter ( ) ;
106+ const spanProcessor = new SpanProcessor ( exporter , tracingOptions ) ;
107+
108+ expect ( spanProcessor . pendingSpans . size ) . to . equal ( 0 ) ;
109+
110+ const overrides = {
111+ spanProcessor : spanProcessor ,
112+ } ;
113+ const span = new Span ( spanOptions ( overrides ) ) ;
114+
115+ expect ( spanProcessor . pendingSpans . size ) . to . equal ( 1 ) ;
116+
117+ span . end ( ) ;
118+
119+ expect ( spanProcessor . pendingSpans . size ) . to . equal ( 0 ) ;
120+
121+ done ( ) ;
122+ } ) ;
70123} ) ;
0 commit comments