@@ -4,6 +4,7 @@ const UserController = require('../lib/Controllers/UserController').UserControll
44const Config = require ( '../lib/Config' ) ;
55const ParseServer = require ( '../lib/index' ) . ParseServer ;
66const triggers = require ( '../lib/triggers' ) ;
7+ const { resolvingPromise, sleep } = require ( './support/testUtils' ) ;
78const validatorFail = ( ) => {
89 throw 'you are not authorized' ;
910} ;
@@ -14,19 +15,9 @@ describe('ParseLiveQuery', function () {
1415 } ) ;
1516 afterEach ( async ( ) => {
1617 const client = await Parse . CoreManager . getLiveQueryController ( ) . getDefaultLiveQueryClient ( ) ;
17- client . close ( ) ;
18- // Wait for live query client to disconnect
19- await new Promise ( resolve => setTimeout ( resolve , 1000 ) ) ;
18+ await client . close ( ) ;
2019 } ) ;
2120 it ( 'access user on onLiveQueryEvent disconnect' , async done => {
22- await reconfigureServer ( {
23- liveQuery : {
24- classNames : [ 'TestObject' ] ,
25- } ,
26- startLiveQueryServer : true ,
27- verbose : false ,
28- silent : true ,
29- } ) ;
3021 const requestedUser = new Parse . User ( ) ;
3122 requestedUser . setUsername ( 'username' ) ;
3223 requestedUser . setPassword ( 'password' ) ;
@@ -43,18 +34,10 @@ describe('ParseLiveQuery', function () {
4334 const query = new Parse . Query ( TestObject ) ;
4435 await query . subscribe ( ) ;
4536 const client = await Parse . CoreManager . getLiveQueryController ( ) . getDefaultLiveQueryClient ( ) ;
46- client . close ( ) ;
37+ await client . close ( ) ;
4738 } ) ;
4839
4940 it ( 'can subscribe to query' , async done => {
50- await reconfigureServer ( {
51- liveQuery : {
52- classNames : [ 'TestObject' ] ,
53- } ,
54- startLiveQueryServer : true ,
55- verbose : false ,
56- silent : true ,
57- } ) ;
5841 const object = new TestObject ( ) ;
5942 await object . save ( ) ;
6043
@@ -120,14 +103,6 @@ describe('ParseLiveQuery', function () {
120103 } ) ;
121104
122105 it ( 'expect afterEvent payload' , async done => {
123- await reconfigureServer ( {
124- liveQuery : {
125- classNames : [ 'TestObject' ] ,
126- } ,
127- startLiveQueryServer : true ,
128- verbose : false ,
129- silent : true ,
130- } ) ;
131106 const object = new TestObject ( ) ;
132107 await object . save ( ) ;
133108
@@ -147,14 +122,6 @@ describe('ParseLiveQuery', function () {
147122 } ) ;
148123
149124 it ( 'expect afterEvent enter' , async done => {
150- await reconfigureServer ( {
151- liveQuery : {
152- classNames : [ 'TestObject' ] ,
153- } ,
154- startLiveQueryServer : true ,
155- verbose : false ,
156- silent : true ,
157- } ) ;
158125 Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
159126 expect ( req . event ) . toBe ( 'enter' ) ;
160127 expect ( req . user ) . toBeUndefined ( ) ;
@@ -178,14 +145,6 @@ describe('ParseLiveQuery', function () {
178145 } ) ;
179146
180147 it ( 'expect afterEvent leave' , async done => {
181- await reconfigureServer ( {
182- liveQuery : {
183- classNames : [ 'TestObject' ] ,
184- } ,
185- startLiveQueryServer : true ,
186- verbose : false ,
187- silent : true ,
188- } ) ;
189148 Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
190149 expect ( req . event ) . toBe ( 'leave' ) ;
191150 expect ( req . user ) . toBeUndefined ( ) ;
@@ -210,14 +169,6 @@ describe('ParseLiveQuery', function () {
210169 } ) ;
211170
212171 it ( 'expect afterEvent delete' , async done => {
213- await reconfigureServer ( {
214- liveQuery : {
215- classNames : [ 'TestObject' ] ,
216- } ,
217- startLiveQueryServer : true ,
218- verbose : false ,
219- silent : true ,
220- } ) ;
221172 Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
222173 expect ( req . event ) . toBe ( 'delete' ) ;
223174 expect ( req . user ) . toBeUndefined ( ) ;
@@ -365,30 +316,18 @@ describe('ParseLiveQuery', function () {
365316 ) ;
366317 } ) ;
367318
368- it ( 'can handle afterEvent sendEvent to false' , async done => {
369- await reconfigureServer ( {
370- liveQuery : {
371- classNames : [ 'TestObject' ] ,
372- } ,
373- startLiveQueryServer : true ,
374- verbose : false ,
375- silent : true ,
376- } ) ;
377-
319+ it ( 'can handle afterEvent sendEvent to false' , async ( ) => {
378320 const object = new TestObject ( ) ;
379321 await object . save ( ) ;
380-
322+ const promise = resolvingPromise ( ) ;
381323 Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
382324 const current = req . object ;
383325 const original = req . original ;
384326
385- setTimeout ( ( ) => {
386- done ( ) ;
387- } , 2000 ) ;
388-
389327 if ( current . get ( 'foo' ) != original . get ( 'foo' ) ) {
390328 req . sendEvent = false ;
391329 }
330+ promise . resolve ( ) ;
392331 } ) ;
393332
394333 const query = new Parse . Query ( TestObject ) ;
@@ -402,9 +341,10 @@ describe('ParseLiveQuery', function () {
402341 } ) ;
403342 object . set ( { foo : 'bar' } ) ;
404343 await object . save ( ) ;
344+ await promise ;
405345 } ) ;
406346
407- xit ( 'can handle live query with fields - enable upon JS SDK support ' , async ( ) => {
347+ it ( 'can handle live query with fields' , async ( ) => {
408348 await reconfigureServer ( {
409349 liveQuery : {
410350 classNames : [ 'Test' ] ,
@@ -442,7 +382,7 @@ describe('ParseLiveQuery', function () {
442382 await obj2 . save ( ) ;
443383 obj2 . set ( 'foo' , 'bart' ) ;
444384 await obj2 . save ( ) ;
445- await new Promise ( resolve => setTimeout ( resolve , 2000 ) ) ;
385+ await sleep ( 2000 ) ;
446386 expect ( createSpy ) . toHaveBeenCalledTimes ( 1 ) ;
447387 expect ( updateSpy ) . toHaveBeenCalledTimes ( 1 ) ;
448388 } ) ;
@@ -771,14 +711,6 @@ describe('ParseLiveQuery', function () {
771711 } ) ;
772712
773713 it ( 'can handle select beforeSubscribe query' , async done => {
774- await reconfigureServer ( {
775- liveQuery : {
776- classNames : [ 'TestObject' ] ,
777- } ,
778- startLiveQueryServer : true ,
779- verbose : false ,
780- silent : true ,
781- } ) ;
782714 Parse . Cloud . beforeSubscribe ( TestObject , request => {
783715 const query = request . query ;
784716 query . select ( 'yolo' ) ;
@@ -857,7 +789,7 @@ describe('ParseLiveQuery', function () {
857789 object . set ( { foo : 'bar' } ) ;
858790 await object . save ( ) ;
859791 await object . destroy ( ) ;
860- await new Promise ( resolve => setTimeout ( resolve , 200 ) ) ;
792+ await sleep ( 200 ) ;
861793 for ( const key in calls ) {
862794 expect ( calls [ key ] ) . toHaveBeenCalled ( ) ;
863795 }
@@ -891,9 +823,9 @@ describe('ParseLiveQuery', function () {
891823 object . set ( { foo : 'bar' } ) ;
892824 await object . save ( null , { useMasterKey : true } ) ;
893825 role . getUsers ( ) . add ( user ) ;
894- await new Promise ( resolve => setTimeout ( resolve , 1000 ) ) ;
826+ await sleep ( 1000 ) ;
895827 await role . save ( ) ;
896- await new Promise ( resolve => setTimeout ( resolve , 1000 ) ) ;
828+ await sleep ( 1000 ) ;
897829 object . set ( 'foo' , 'yolo' ) ;
898830 await Promise . all ( [
899831 new Promise ( resolve => {
@@ -924,7 +856,6 @@ describe('ParseLiveQuery', function () {
924856 const subscription = await query . subscribe ( ) ;
925857
926858 subscription . on ( 'create' , async obj => {
927- await new Promise ( resolve => setTimeout ( resolve , 200 ) ) ;
928859 expect ( obj . get ( 'user' ) . id ) . toBe ( user . id ) ;
929860 expect ( obj . get ( 'createdWith' ) ) . toEqual ( { action : 'login' , authProvider : 'password' } ) ;
930861 expect ( obj . get ( 'expiresAt' ) ) . toBeInstanceOf ( Date ) ;
@@ -1227,6 +1158,8 @@ describe('ParseLiveQuery', function () {
12271158 classNames : [ 'Yolo' ] ,
12281159 } ,
12291160 startLiveQueryServer : true ,
1161+ verbose : false ,
1162+ silent : true ,
12301163 } ;
12311164 if ( process . env . PARSE_SERVER_TEST_DB === 'postgres' ) {
12321165 config . databaseAdapter = new databaseAdapter . constructor ( {
0 commit comments