@@ -25,7 +25,7 @@ beforeEach(() => {
2525
2626describe ( 'enableXHRInterception' , ( ) => {
2727 it ( 'should do nothing if interceptor has already been enabled' , ( ) => {
28- ( warn as jest . Mock ) . mockImplementationOnce ( ( ) => { } ) ;
28+ ( warn as jest . Mock ) . mockImplementationOnce ( ( ) => null ) ;
2929 const logger = new Logger ( ) ;
3030
3131 ( XHRInterceptor . isInterceptorEnabled as jest . Mock ) . mockReturnValueOnce (
@@ -195,25 +195,33 @@ describe('getRequest', () => {
195195
196196 it ( 'should return request that matches index' , ( ) => {
197197 const logger = new Logger ( ) ;
198- const requests = [ { id : 1 } , { id : 2 } , { id : 3 } ] ;
198+ const requests = [ { id : `3` } , { id : `2` } , { id : `1` } ] ;
199199 // @ts -expect-error
200200 logger . requests = requests ;
201201 // @ts -expect-error
202- logger . xhrIdMap = { 0 : 0 , 1 : 1 , 2 : 2 } ;
202+ logger . xhrIdMap = new Map ( [
203+ [ 1 , ( ) => requests . findIndex ( ( r ) => r . id === `${ 1 } ` ) ] ,
204+ [ 2 , ( ) => requests . findIndex ( ( r ) => r . id === `${ 2 } ` ) ] ,
205+ [ 3 , ( ) => requests . findIndex ( ( r ) => r . id === `${ 3 } ` ) ] ,
206+ ] ) ;
203207 // @ts -expect-error
204- const result = logger . getRequest ( 0 ) ;
208+ const result = logger . getRequest ( 1 ) ;
205209 expect ( result ) . toBe ( requests [ 2 ] ) ;
206210 } ) ;
207211
208212 it ( 'should return request that matches index if at start' , ( ) => {
209213 const logger = new Logger ( ) ;
210- const requests = [ { id : 1 } , { id : 2 } , { id : 3 } ] ;
214+ const requests = [ { id : `3` } , { id : `2` } , { id : `1` } ] ;
211215 // @ts -expect-error
212216 logger . requests = requests ;
213217 // @ts -expect-error
214- logger . xhrIdMap = { 0 : 0 , 1 : 1 , 2 : 2 } ;
218+ logger . xhrIdMap = new Map ( [
219+ [ 1 , ( ) => requests . findIndex ( ( r ) => r . id === `${ 1 } ` ) ] ,
220+ [ 2 , ( ) => requests . findIndex ( ( r ) => r . id === `${ 2 } ` ) ] ,
221+ [ 3 , ( ) => requests . findIndex ( ( r ) => r . id === `${ 3 } ` ) ] ,
222+ ] ) ;
215223 // @ts -expect-error
216- const result = logger . getRequest ( 2 ) ;
224+ const result = logger . getRequest ( 3 ) ;
217225 expect ( result ) . toBe ( requests [ 0 ] ) ;
218226 } ) ;
219227} ) ;
@@ -233,6 +241,9 @@ describe('openCallback', () => {
233241 logger . openCallback ( 'POST' , url2 , xhr ) ;
234242 expect ( logger . getRequests ( ) [ 0 ] . url ) . toEqual ( url2 ) ;
235243 expect ( logger . getRequests ( ) [ 1 ] . url ) . toEqual ( url1 ) ;
244+
245+ // @ts -expect-error
246+ logger . dispose ( ) ;
236247 } ) ;
237248
238249 it ( 'should ignore requests that have ignored hosts' , ( ) => {
@@ -249,22 +260,27 @@ describe('openCallback', () => {
249260 logger . openCallback ( 'POST' , url2 , xhr ) ;
250261 expect ( logger . getRequests ( ) [ 0 ] . url ) . toEqual ( url1 ) ;
251262 expect ( logger . getRequests ( ) ) . toHaveLength ( 1 ) ;
263+
264+ // @ts -expect-error
265+ logger . dispose ( ) ;
252266 } ) ;
253267
254268 it ( 'should ignore requests that have ignored urls' , ( ) => {
255269 const logger = new Logger ( ) ;
256270 logger . enableXHRInterception ( { ignoredUrls : [ 'http://ignored.com/test' ] } ) ;
257271
258- const xhr = { } ;
259272 const url1 = 'http://ignored.com/1' ;
260273 const url2 = 'http://ignored.com/test' ;
261274
262275 // @ts -expect-error
263- logger . openCallback ( 'POST' , url1 , xhr ) ;
276+ logger . openCallback ( 'POST' , url1 , { _index : 0 } ) ;
264277 // @ts -expect-error
265- logger . openCallback ( 'POST' , url2 , xhr ) ;
278+ logger . openCallback ( 'POST' , url2 , { _index : 1 } ) ;
266279 expect ( logger . getRequests ( ) [ 0 ] . url ) . toEqual ( url1 ) ;
267280 expect ( logger . getRequests ( ) ) . toHaveLength ( 1 ) ;
281+
282+ // @ts -expect-error
283+ logger . dispose ( ) ;
268284 } ) ;
269285
270286 it ( 'should ignore requests that match pattern' , ( ) => {
@@ -273,23 +289,57 @@ describe('openCallback', () => {
273289 ignoredPatterns : [ / ^ H E A D / , / ^ P O S T h t t p : \/ \/ i g n o r e d / ] ,
274290 } ) ;
275291
276- const xhr = { } ;
277292 const url1 = 'http://allowed.com/1' ;
278293 const url2 = 'http://ignored.com/test' ;
279294
280295 // @ts -expect-error
281- logger . openCallback ( 'POST' , url1 , xhr ) ;
296+ logger . openCallback ( 'POST' , url1 , { _index : 0 } ) ;
282297 // @ts -expect-error
283- logger . openCallback ( 'POST' , url2 , xhr ) ;
298+ logger . openCallback ( 'POST' , url2 , { _index : 1 } ) ;
284299 // @ts -expect-error
285- logger . openCallback ( 'HEAD' , url2 , xhr ) ;
300+ logger . openCallback ( 'HEAD' , url2 , { _index : 2 } ) ;
286301 // @ts -expect-error
287- logger . openCallback ( 'PUT' , url2 , xhr ) ;
302+ logger . openCallback ( 'PUT' , url2 , { _index : 3 } ) ;
288303 // Requests should be in reverse order
289304 expect ( logger . getRequests ( ) [ 1 ] . url ) . toEqual ( url1 ) ;
290305 expect ( logger . getRequests ( ) [ 1 ] . method ) . toEqual ( 'POST' ) ;
291306 expect ( logger . getRequests ( ) [ 0 ] . url ) . toEqual ( url2 ) ;
292307 expect ( logger . getRequests ( ) [ 0 ] . method ) . toEqual ( 'PUT' ) ;
293308 expect ( logger . getRequests ( ) ) . toHaveLength ( 2 ) ;
309+
310+ // @ts -expect-error
311+ logger . dispose ( ) ;
312+ } ) ;
313+
314+ it ( 'should retrieve requests when it is restricted by maxRequests' , ( ) => {
315+ const logger = new Logger ( ) ;
316+ logger . enableXHRInterception ( {
317+ maxRequests : 2 ,
318+ } ) ;
319+
320+ const url = 'http://example.com/1' ;
321+
322+ // @ts -expect-error
323+ logger . openCallback ( 'POST' , url , { _index : 0 } ) ;
324+ // @ts -expect-error
325+ logger . openCallback ( 'GET' , url , { _index : 1 } ) ;
326+ // @ts -expect-error
327+ logger . openCallback ( 'HEAD' , url , { _index : 2 } ) ;
328+ // @ts -expect-error
329+ logger . openCallback ( 'PUT' , url , { _index : 3 } ) ;
330+
331+ // Requests should be in reverse order
332+ expect ( logger . getRequests ( ) [ 0 ] . method ) . toEqual ( 'PUT' ) ;
333+ expect ( logger . getRequests ( ) [ 1 ] . method ) . toEqual ( 'HEAD' ) ;
334+ expect ( logger . getRequests ( ) ) . toHaveLength ( 2 ) ;
335+
336+ // @ts -expect-error
337+ expect ( logger . getRequest ( 0 ) ?. method ) . toBeUndefined ( ) ;
338+ const first = logger . getRequests ( ) [ 0 ] ;
339+ // @ts -expect-error
340+ expect ( logger . getRequest ( 3 ) ?. method ) . toBe ( first ?. method ) ;
341+
342+ // @ts -expect-error
343+ logger . dispose ( ) ;
294344 } ) ;
295345} ) ;
0 commit comments