@@ -522,6 +522,43 @@ describe('LiveQueryClient', () => {
522
522
spy . mockRestore ( ) ;
523
523
} ) ;
524
524
525
+ it ( 'can handle select in websocket payload' , ( ) => {
526
+ const liveQueryClient = new LiveQueryClient ( {
527
+ applicationId : 'applicationId' ,
528
+ serverURL : 'ws://test' ,
529
+ javascriptKey : 'javascriptKey' ,
530
+ masterKey : 'masterKey' ,
531
+ sessionToken : 'sessionToken' ,
532
+ } ) ;
533
+ // Add mock subscription
534
+ const subscription = new events . EventEmitter ( ) ;
535
+ subscription . query = new ParseQuery ( 'Test' ) . select ( 'foo' ) ;
536
+ liveQueryClient . subscriptions . set ( 1 , subscription ) ;
537
+ const object = new ParseObject ( 'Test' ) ;
538
+ const original = new ParseObject ( 'Test' ) ;
539
+ object . set ( 'key' , 'value' ) ;
540
+ original . set ( 'key' , 'old' ) ;
541
+ const data = {
542
+ op : 'update' ,
543
+ clientId : 1 ,
544
+ requestId : 1 ,
545
+ object : object . _toFullJSON ( ) ,
546
+ original : original . _toFullJSON ( ) ,
547
+ } ;
548
+ const event = {
549
+ data : JSON . stringify ( data ) ,
550
+ } ;
551
+
552
+ const spy = jest
553
+ . spyOn ( ParseObject , 'fromJSON' )
554
+ . mockImplementationOnce ( ( ) => original )
555
+ . mockImplementationOnce ( ( ) => object ) ;
556
+
557
+ liveQueryClient . _handleWebSocketMessage ( event ) ;
558
+ expect ( ParseObject . fromJSON . mock . calls [ 1 ] [ 1 ] ) . toEqual ( false ) ;
559
+ spy . mockRestore ( ) ;
560
+ } ) ;
561
+
525
562
it ( 'can handle WebSocket response unset field' , async ( ) => {
526
563
const liveQueryClient = new LiveQueryClient ( {
527
564
applicationId : 'applicationId' ,
0 commit comments