@@ -358,14 +358,14 @@ describe('_send', () => {
358
358
359
359
const result = harvestInstance . _send ( spec )
360
360
const xhrAddEventListener = jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value . addEventListener
361
- const xhrLoadHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
361
+ const xhrLoadEndHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
362
362
363
363
const xhrState = {
364
364
status : faker . string . uuid ( )
365
365
}
366
- xhrLoadHandler . call ( xhrState )
366
+ xhrLoadEndHandler . call ( xhrState )
367
367
368
- expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'load ' , expect . any ( Function ) , expect . any ( Object ) )
368
+ expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'loadend ' , expect . any ( Function ) , expect . any ( Object ) )
369
369
expect ( result ) . toEqual ( jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value )
370
370
expect ( submitMethod ) . not . toHaveBeenCalled ( )
371
371
expect ( spec . cbFinished ) . toHaveBeenCalledWith ( { ...xhrState , sent : true } )
@@ -378,14 +378,14 @@ describe('_send', () => {
378
378
379
379
const result = harvestInstance . _send ( spec )
380
380
const xhrAddEventListener = jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value . addEventListener
381
- const xhrLoadHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
381
+ const xhrLoadEndHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
382
382
383
383
const xhrState = {
384
384
status : 429
385
385
}
386
- xhrLoadHandler . call ( xhrState )
386
+ xhrLoadEndHandler . call ( xhrState )
387
387
388
- expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'load ' , expect . any ( Function ) , expect . any ( Object ) )
388
+ expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'loadend ' , expect . any ( Function ) , expect . any ( Object ) )
389
389
expect ( result ) . toEqual ( jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value )
390
390
expect ( submitMethod ) . not . toHaveBeenCalled ( )
391
391
expect ( spec . cbFinished ) . toHaveBeenCalledWith ( {
@@ -404,14 +404,14 @@ describe('_send', () => {
404
404
405
405
const result = harvestInstance . _send ( spec )
406
406
const xhrAddEventListener = jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value . addEventListener
407
- const xhrLoadHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
407
+ const xhrLoadEndHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
408
408
409
409
const xhrState = {
410
410
status : statusCode
411
411
}
412
- xhrLoadHandler . call ( xhrState )
412
+ xhrLoadEndHandler . call ( xhrState )
413
413
414
- expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'load ' , expect . any ( Function ) , expect . any ( Object ) )
414
+ expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'loadend ' , expect . any ( Function ) , expect . any ( Object ) )
415
415
expect ( result ) . toEqual ( jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value )
416
416
expect ( submitMethod ) . not . toHaveBeenCalled ( )
417
417
expect ( spec . cbFinished ) . toHaveBeenCalledWith ( {
@@ -428,15 +428,15 @@ describe('_send', () => {
428
428
429
429
const result = harvestInstance . _send ( spec )
430
430
const xhrAddEventListener = jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value . addEventListener
431
- const xhrLoadHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
431
+ const xhrLoadEndHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
432
432
433
433
const xhrState = {
434
434
status : faker . string . uuid ( ) ,
435
435
responseText : faker . lorem . sentence ( )
436
436
}
437
- xhrLoadHandler . call ( xhrState )
437
+ xhrLoadEndHandler . call ( xhrState )
438
438
439
- expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'load ' , expect . any ( Function ) , expect . any ( Object ) )
439
+ expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'loadend ' , expect . any ( Function ) , expect . any ( Object ) )
440
440
expect ( result ) . toEqual ( jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value )
441
441
expect ( submitMethod ) . not . toHaveBeenCalled ( )
442
442
expect ( spec . cbFinished ) . toHaveBeenCalledWith ( {
@@ -452,15 +452,15 @@ describe('_send', () => {
452
452
453
453
const result = harvestInstance . _send ( spec )
454
454
const xhrAddEventListener = jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value . addEventListener
455
- const xhrLoadHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
455
+ const xhrLoadEndHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
456
456
457
457
const xhrState = {
458
458
status : faker . string . uuid ( ) ,
459
459
responseText : faker . lorem . sentence ( )
460
460
}
461
- xhrLoadHandler . call ( xhrState )
461
+ xhrLoadEndHandler . call ( xhrState )
462
462
463
- expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'load ' , expect . any ( Function ) , expect . any ( Object ) )
463
+ expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'loadend ' , expect . any ( Function ) , expect . any ( Object ) )
464
464
expect ( result ) . toEqual ( jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value )
465
465
expect ( submitMethod ) . not . toHaveBeenCalled ( )
466
466
expect ( spec . cbFinished ) . toHaveBeenCalledWith ( {
@@ -469,6 +469,28 @@ describe('_send', () => {
469
469
sent : true
470
470
} )
471
471
} )
472
+
473
+ test ( 'should call cbFinished with sent false and status 0 when xhr failed locally' , ( ) => {
474
+ jest . mocked ( submitDataModule . getSubmitMethod ) . mockReturnValue ( submitDataModule . xhr )
475
+ spec . cbFinished = jest . fn ( )
476
+
477
+ const result = harvestInstance . _send ( spec )
478
+ const xhrAddEventListener = jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value . addEventListener
479
+ const xhrLoadEndHandler = jest . mocked ( xhrAddEventListener ) . mock . calls [ 0 ] [ 1 ]
480
+
481
+ const xhrState = {
482
+ status : 0
483
+ }
484
+ xhrLoadEndHandler . call ( xhrState )
485
+
486
+ expect ( xhrAddEventListener ) . toHaveBeenCalledWith ( 'loadend' , expect . any ( Function ) , expect . any ( Object ) )
487
+ expect ( result ) . toEqual ( jest . mocked ( submitDataModule . xhr ) . mock . results [ 0 ] . value )
488
+ expect ( submitMethod ) . not . toHaveBeenCalled ( )
489
+ expect ( spec . cbFinished ) . toHaveBeenCalledWith ( {
490
+ ...xhrState ,
491
+ sent : false
492
+ } )
493
+ } )
472
494
} )
473
495
474
496
describe ( 'obfuscateAndSend' , ( ) => {
0 commit comments