@@ -7,6 +7,7 @@ import { expect } from 'chai';
7
7
import sinon from 'sinon' ;
8
8
9
9
import Tracing from '../../../src/tracing/tracing.js' ;
10
+ import Telemeter from '../../../src/telemetry.js' ;
10
11
import Recorder from '../../../src/browser/replay/recorder.js' ;
11
12
import ReplayMap from '../../../src/browser/replay/replayMap.js' ;
12
13
import recorderDefaults from '../../../src/browser/replay/defaults.js' ;
@@ -37,6 +38,7 @@ const options = {
37
38
38
39
describe ( 'Session Replay E2E' , function ( ) {
39
40
let tracing ;
41
+ let telemeter ;
40
42
let recorder ;
41
43
let api ;
42
44
let transport ;
@@ -73,6 +75,7 @@ describe('Session Replay E2E', function () {
73
75
urlMock ,
74
76
truncationMock ,
75
77
) ;
78
+ telemeter = new Telemeter ( { } , tracing ) ;
76
79
77
80
recorder = new Recorder ( options . recorder , mockRecordFn ) ;
78
81
@@ -82,6 +85,7 @@ describe('Session Replay E2E', function () {
82
85
recorder,
83
86
api,
84
87
tracing,
88
+ telemeter,
85
89
} ) ;
86
90
87
91
queue = new Queue ( rateLimiter , api , logger , { transmit : true } , replayMap ) ;
@@ -146,24 +150,35 @@ describe('Session Replay E2E', function () {
146
150
payloads . standardPayload . resourceSpans [ 0 ] . resource ,
147
151
) ;
148
152
149
- const span = resourceSpan . scopeSpans [ 0 ] . spans [ 0 ] ;
150
- expect ( span ) . to . have . property ( 'name' , 'rrweb-replay-recording' ) ;
151
- expect ( span ) . to . have . property ( 'events' ) ;
152
- expect ( span . events ) . to . be . an ( 'array' ) ;
153
- expect ( span ) . to . have . property ( 'attributes' ) . that . is . an ( 'array' ) ;
154
- expect ( span . attributes ) . to . have . lengthOf ( 2 ) ;
153
+ const span_t = resourceSpan . scopeSpans [ 0 ] . spans [ 0 ] ; // telemetry span
154
+ const span_r = resourceSpan . scopeSpans [ 0 ] . spans [ 1 ] ; // recording span
155
155
156
- expect ( span . attributes ) . to . deep . include ( {
156
+ expect ( span_r ) . to . have . property ( 'name' , 'rrweb-replay-recording' ) ;
157
+ expect ( span_r ) . to . have . property ( 'events' ) ;
158
+ expect ( span_r . events ) . to . be . an ( 'array' ) ;
159
+ expect ( span_r ) . to . have . property ( 'attributes' ) . that . is . an ( 'array' ) ;
160
+ expect ( span_r . attributes ) . to . have . lengthOf ( 2 ) ;
161
+
162
+ expect ( span_r . attributes ) . to . deep . include ( {
157
163
key : 'rollbar.replay.id' ,
158
164
value : { stringValue : expectedReplayId } ,
159
165
} ) ;
160
166
161
- const sessionIdAttr = span . attributes . find (
167
+ const sessionIdAttr = span_r . attributes . find (
162
168
( attr ) => attr . key === 'session.id' ,
163
169
) ;
164
170
expect ( sessionIdAttr ) . to . exist ;
165
171
expect ( sessionIdAttr . value . stringValue ) . to . match ( / ^ [ 0 - 9 a - f A - F ] { 32 } $ / ) ;
166
172
173
+ expect ( span_t ) . to . have . property ( 'name' , 'rollbar-telemetry' ) ;
174
+ expect ( span_t . attributes ) . to . deep . include ( {
175
+ key : 'rollbar.replay.id' ,
176
+ value : { stringValue : expectedReplayId } ,
177
+ } ) ;
178
+ expect ( sessionIdAttr ) . to . deep . equal (
179
+ span_t . attributes . find ( ( attr ) => attr . key === 'session.id' ) ,
180
+ ) ;
181
+
167
182
const transportArgs = transport . post . lastCall . args ;
168
183
expect ( transportArgs [ 1 ] . path ) . to . include ( '/api/1/session/' ) ;
169
184
0 commit comments