@@ -15,7 +15,7 @@ async function advanceTimers(time: number) {
1515}
1616
1717type MockTransportSend = jest . MockedFunction < Transport [ 'send' ] > ;
18- type MockSendReplayRequest = jest . MockedFunction < ReplayContainer [ 'sendReplayRequest ' ] > ;
18+ type MockSendReplayRequest = jest . MockedFunction < ReplayContainer [ '_sendReplayRequest ' ] > ;
1919
2020describe ( 'Integration | rate-limiting behaviour' , ( ) => {
2121 let replay : ReplayContainer ;
@@ -32,11 +32,12 @@ describe('Integration | rate-limiting behaviour', () => {
3232 } ,
3333 } ) ) ;
3434
35- jest . spyOn ( replay , 'sendReplayRequest' ) ;
35+ // @ts -ignore private API
36+ jest . spyOn ( replay , '_sendReplayRequest' ) ;
3637
3738 jest . runAllTimers ( ) ;
3839 mockTransportSend = getCurrentHub ( ) ?. getClient ( ) ?. getTransport ( ) ?. send as MockTransportSend ;
39- mockSendReplayRequest = replay . sendReplayRequest as MockSendReplayRequest ;
40+ mockSendReplayRequest = replay [ '_sendReplayRequest' ] as MockSendReplayRequest ;
4041 } ) ;
4142
4243 beforeEach ( ( ) => {
@@ -47,7 +48,7 @@ describe('Integration | rate-limiting behaviour', () => {
4748 // Create a new session and clear mocks because a segment (from initial
4849 // checkout) will have already been uploaded by the time the tests run
4950 clearSession ( replay ) ;
50- replay . loadSession ( { expiry : 0 } ) ;
51+ replay [ '_loadSession' ] ( { expiry : 0 } ) ;
5152
5253 mockSendReplayRequest . mockClear ( ) ;
5354
@@ -60,7 +61,7 @@ describe('Integration | rate-limiting behaviour', () => {
6061 jest . setSystemTime ( new Date ( BASE_TIMESTAMP ) ) ;
6162 clearSession ( replay ) ;
6263 jest . clearAllMocks ( ) ;
63- replay . loadSession ( { expiry : SESSION_IDLE_DURATION } ) ;
64+ replay [ '_loadSession' ] ( { expiry : SESSION_IDLE_DURATION } ) ;
6465 } ) ;
6566
6667 afterAll ( ( ) => {
@@ -93,11 +94,12 @@ describe('Integration | rate-limiting behaviour', () => {
9394 'pauses recording and flushing a rate limit is hit and resumes both after the rate limit duration is over' ,
9495 async rateLimitResponse => {
9596 expect ( replay . session ?. segmentId ) . toBe ( 0 ) ;
96- jest . spyOn ( replay , 'sendReplay' ) ;
9797 jest . spyOn ( replay , 'pause' ) ;
9898 jest . spyOn ( replay , 'resume' ) ;
9999 // @ts -ignore private API
100100 jest . spyOn ( replay , '_handleRateLimit' ) ;
101+ // @ts -ignore private API
102+ jest . spyOn ( replay , '_sendReplay' ) ;
101103
102104 const TEST_EVENT = { data : { } , timestamp : BASE_TIMESTAMP , type : 2 } ;
103105
@@ -133,7 +135,7 @@ describe('Integration | rate-limiting behaviour', () => {
133135 mockRecord . _emitter ( ev ) ;
134136 await advanceTimers ( DEFAULT_FLUSH_MIN_DELAY ) ;
135137 expect ( replay . isPaused ( ) ) . toBe ( true ) ;
136- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 1 ) ;
138+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 1 ) ;
137139 expect ( mockTransportSend ) . toHaveBeenCalledTimes ( 1 ) ;
138140 }
139141
@@ -145,7 +147,7 @@ describe('Integration | rate-limiting behaviour', () => {
145147 expect ( replay . resume ) . toHaveBeenCalledTimes ( 1 ) ;
146148 expect ( replay . isPaused ( ) ) . toBe ( false ) ;
147149
148- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 2 ) ;
150+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 2 ) ;
149151 expect ( replay ) . toHaveLastSentReplay ( {
150152 events : '[{"data":{"isCheckout":true},"timestamp":1580598035000,"type":2}]' ,
151153 } ) ;
@@ -160,27 +162,28 @@ describe('Integration | rate-limiting behaviour', () => {
160162
161163 // T = base + 40
162164 await advanceTimers ( DEFAULT_FLUSH_MIN_DELAY ) ;
163- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 3 ) ;
165+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 3 ) ;
164166 expect ( replay ) . toHaveLastSentReplay ( { events : JSON . stringify ( [ TEST_EVENT3 ] ) } ) ;
165167
166168 // nothing should happen afterwards
167169 // T = base + 60
168170 await advanceTimers ( 20_000 ) ;
169- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 3 ) ;
171+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 3 ) ;
170172 expect ( replay ) . toHaveLastSentReplay ( { events : JSON . stringify ( [ TEST_EVENT3 ] ) } ) ;
171173
172174 // events array should be empty
173- expect ( replay . eventBuffer ?. length ) . toBe ( 0 ) ;
175+ expect ( replay . eventBuffer ?. pendingLength ) . toBe ( 0 ) ;
174176 } ,
175177 ) ;
176178
177179 it ( 'handles rate-limits from a plain 429 response without any retry time' , async ( ) => {
178180 expect ( replay . session ?. segmentId ) . toBe ( 0 ) ;
179- jest . spyOn ( replay , 'sendReplay' ) ;
180181 jest . spyOn ( replay , 'pause' ) ;
181182 jest . spyOn ( replay , 'resume' ) ;
182183 // @ts -ignore private API
183184 jest . spyOn ( replay , '_handleRateLimit' ) ;
185+ // @ts -ignore private API
186+ jest . spyOn ( replay , '_sendReplay' ) ;
184187
185188 const TEST_EVENT = { data : { } , timestamp : BASE_TIMESTAMP , type : 2 } ;
186189
@@ -217,7 +220,7 @@ describe('Integration | rate-limiting behaviour', () => {
217220 mockRecord . _emitter ( ev ) ;
218221 await advanceTimers ( DEFAULT_FLUSH_MIN_DELAY ) ;
219222 expect ( replay . isPaused ( ) ) . toBe ( true ) ;
220- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 1 ) ;
223+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 1 ) ;
221224 expect ( mockTransportSend ) . toHaveBeenCalledTimes ( 1 ) ;
222225 }
223226
@@ -229,7 +232,7 @@ describe('Integration | rate-limiting behaviour', () => {
229232 expect ( replay . resume ) . toHaveBeenCalledTimes ( 1 ) ;
230233 expect ( replay . isPaused ( ) ) . toBe ( false ) ;
231234
232- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 2 ) ;
235+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 2 ) ;
233236 expect ( replay ) . toHaveLastSentReplay ( {
234237 events : '[{"data":{"isCheckout":true},"timestamp":1580598065000,"type":2}]' ,
235238 } ) ;
@@ -244,16 +247,16 @@ describe('Integration | rate-limiting behaviour', () => {
244247
245248 // T = base + 65
246249 await advanceTimers ( DEFAULT_FLUSH_MIN_DELAY ) ;
247- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 3 ) ;
250+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 3 ) ;
248251 expect ( replay ) . toHaveLastSentReplay ( { events : JSON . stringify ( [ TEST_EVENT3 ] ) } ) ;
249252
250253 // nothing should happen afterwards
251254 // T = base + 85
252255 await advanceTimers ( 20_000 ) ;
253- expect ( replay . sendReplay ) . toHaveBeenCalledTimes ( 3 ) ;
256+ expect ( replay [ '_sendReplay' ] ) . toHaveBeenCalledTimes ( 3 ) ;
254257 expect ( replay ) . toHaveLastSentReplay ( { events : JSON . stringify ( [ TEST_EVENT3 ] ) } ) ;
255258
256259 // events array should be empty
257- expect ( replay . eventBuffer ?. length ) . toBe ( 0 ) ;
260+ expect ( replay . eventBuffer ?. pendingLength ) . toBe ( 0 ) ;
258261 } ) ;
259262} ) ;
0 commit comments