@@ -319,6 +319,41 @@ describe('ParseLiveQuery', function () {
319
319
await object . save ( ) ;
320
320
} ) ;
321
321
322
+ it ( 'can log on afterLiveQueryEvent throw' , async ( ) => {
323
+ await reconfigureServer ( {
324
+ liveQuery : {
325
+ classNames : [ 'TestObject' ] ,
326
+ } ,
327
+ startLiveQueryServer : true ,
328
+ verbose : false ,
329
+ silent : true ,
330
+ } ) ;
331
+
332
+ const object = new TestObject ( ) ;
333
+ await object . save ( ) ;
334
+
335
+ const logger = require ( '../lib/logger' ) . logger ;
336
+ spyOn ( logger , 'error' ) . and . callFake ( ( ) => { } ) ;
337
+
338
+ let session = undefined ;
339
+ Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , ( { sessionToken } ) => {
340
+ session = sessionToken ;
341
+ /* eslint-disable no-undef */
342
+ foo . bar ( ) ;
343
+ /* eslint-enable no-undef */
344
+ } ) ;
345
+
346
+ const query = new Parse . Query ( TestObject ) ;
347
+ query . equalTo ( 'objectId' , object . id ) ;
348
+ const subscription = await query . subscribe ( ) ;
349
+ object . set ( { foo : 'bar' } ) ;
350
+ await object . save ( ) ;
351
+ await new Promise ( resolve => subscription . on ( 'error' , resolve ) ) ;
352
+ expect ( logger . error ) . toHaveBeenCalledWith (
353
+ `Failed running afterLiveQueryEvent on class TestObject for event update with session ${ session } with:\n Error: {"message":"foo is not defined","code":141}`
354
+ ) ;
355
+ } ) ;
356
+
322
357
it ( 'can handle afterEvent sendEvent to false' , async done => {
323
358
await reconfigureServer ( {
324
359
liveQuery : {
@@ -566,6 +601,33 @@ describe('ParseLiveQuery', function () {
566
601
await query . subscribe ( ) ;
567
602
} ) ;
568
603
604
+ it ( 'can log on beforeConnect throw' , async ( ) => {
605
+ await reconfigureServer ( {
606
+ liveQuery : {
607
+ classNames : [ 'TestObject' ] ,
608
+ } ,
609
+ startLiveQueryServer : true ,
610
+ verbose : false ,
611
+ silent : true ,
612
+ } ) ;
613
+
614
+ const logger = require ( '../lib/logger' ) . logger ;
615
+ spyOn ( logger , 'error' ) . and . callFake ( ( ) => { } ) ;
616
+ let token = undefined ;
617
+ Parse . Cloud . beforeConnect ( ( { sessionToken } ) => {
618
+ token = sessionToken ;
619
+ /* eslint-disable no-undef */
620
+ foo . bar ( ) ;
621
+ /* eslint-enable no-undef */
622
+ } ) ;
623
+ new Parse . Query ( TestObject ) . subscribe ( ) ;
624
+ await new Promise ( resolve => Parse . LiveQuery . on ( 'error' , resolve ) ) ;
625
+ Parse . LiveQuery . removeAllListeners ( 'error' ) ;
626
+ expect ( logger . error ) . toHaveBeenCalledWith (
627
+ `Failed running beforeConnect for session ${ token } with:\n Error: {"message":"foo is not defined","code":141}`
628
+ ) ;
629
+ } ) ;
630
+
569
631
it ( 'can handle beforeSubscribe error' , async done => {
570
632
await reconfigureServer ( {
571
633
liveQuery : {
@@ -594,6 +656,34 @@ describe('ParseLiveQuery', function () {
594
656
} ) ;
595
657
} ) ;
596
658
659
+ it ( 'can log on beforeSubscribe error' , async ( ) => {
660
+ await reconfigureServer ( {
661
+ liveQuery : {
662
+ classNames : [ 'TestObject' ] ,
663
+ } ,
664
+ startLiveQueryServer : true ,
665
+ verbose : false ,
666
+ silent : true ,
667
+ } ) ;
668
+
669
+ const logger = require ( '../lib/logger' ) . logger ;
670
+ spyOn ( logger , 'error' ) . and . callFake ( ( ) => { } ) ;
671
+
672
+ Parse . Cloud . beforeSubscribe ( TestObject , ( ) => {
673
+ /* eslint-disable no-undef */
674
+ foo . bar ( ) ;
675
+ /* eslint-enable no-undef */
676
+ } ) ;
677
+
678
+ const query = new Parse . Query ( TestObject ) ;
679
+ const subscription = await query . subscribe ( ) ;
680
+ await new Promise ( resolve => subscription . on ( 'error' , resolve ) ) ;
681
+
682
+ expect ( logger . error ) . toHaveBeenCalledWith (
683
+ `Failed running beforeSubscribe on TestObject for session undefined with:\n Error: {"message":"foo is not defined","code":141}`
684
+ ) ;
685
+ } ) ;
686
+
597
687
it ( 'can handle mutate beforeSubscribe query' , async done => {
598
688
await reconfigureServer ( {
599
689
liveQuery : {
0 commit comments