@@ -522,6 +522,43 @@ describe('LiveQueryClient', () => {
522522 spy . mockRestore ( ) ;
523523 } ) ;
524524
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+
525562 it ( 'can handle WebSocket response unset field' , async ( ) => {
526563 const liveQueryClient = new LiveQueryClient ( {
527564 applicationId : 'applicationId' ,
0 commit comments