@@ -4,6 +4,7 @@ const UserController = require('../lib/Controllers/UserController').UserControll
4
4
const Config = require ( '../lib/Config' ) ;
5
5
const ParseServer = require ( '../lib/index' ) . ParseServer ;
6
6
const triggers = require ( '../lib/triggers' ) ;
7
+ const { resolvingPromise, sleep } = require ( './support/testUtils' ) ;
7
8
const validatorFail = ( ) => {
8
9
throw 'you are not authorized' ;
9
10
} ;
@@ -14,19 +15,9 @@ describe('ParseLiveQuery', function () {
14
15
} ) ;
15
16
afterEach ( async ( ) => {
16
17
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 ( ) ;
20
19
} ) ;
21
20
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
- } ) ;
30
21
const requestedUser = new Parse . User ( ) ;
31
22
requestedUser . setUsername ( 'username' ) ;
32
23
requestedUser . setPassword ( 'password' ) ;
@@ -43,18 +34,10 @@ describe('ParseLiveQuery', function () {
43
34
const query = new Parse . Query ( TestObject ) ;
44
35
await query . subscribe ( ) ;
45
36
const client = await Parse . CoreManager . getLiveQueryController ( ) . getDefaultLiveQueryClient ( ) ;
46
- client . close ( ) ;
37
+ await client . close ( ) ;
47
38
} ) ;
48
39
49
40
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
- } ) ;
58
41
const object = new TestObject ( ) ;
59
42
await object . save ( ) ;
60
43
@@ -120,14 +103,6 @@ describe('ParseLiveQuery', function () {
120
103
} ) ;
121
104
122
105
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
- } ) ;
131
106
const object = new TestObject ( ) ;
132
107
await object . save ( ) ;
133
108
@@ -147,14 +122,6 @@ describe('ParseLiveQuery', function () {
147
122
} ) ;
148
123
149
124
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
- } ) ;
158
125
Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
159
126
expect ( req . event ) . toBe ( 'enter' ) ;
160
127
expect ( req . user ) . toBeUndefined ( ) ;
@@ -178,14 +145,6 @@ describe('ParseLiveQuery', function () {
178
145
} ) ;
179
146
180
147
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
- } ) ;
189
148
Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
190
149
expect ( req . event ) . toBe ( 'leave' ) ;
191
150
expect ( req . user ) . toBeUndefined ( ) ;
@@ -210,14 +169,6 @@ describe('ParseLiveQuery', function () {
210
169
} ) ;
211
170
212
171
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
- } ) ;
221
172
Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
222
173
expect ( req . event ) . toBe ( 'delete' ) ;
223
174
expect ( req . user ) . toBeUndefined ( ) ;
@@ -365,30 +316,18 @@ describe('ParseLiveQuery', function () {
365
316
) ;
366
317
} ) ;
367
318
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 ( ) => {
378
320
const object = new TestObject ( ) ;
379
321
await object . save ( ) ;
380
-
322
+ const promise = resolvingPromise ( ) ;
381
323
Parse . Cloud . afterLiveQueryEvent ( 'TestObject' , req => {
382
324
const current = req . object ;
383
325
const original = req . original ;
384
326
385
- setTimeout ( ( ) => {
386
- done ( ) ;
387
- } , 2000 ) ;
388
-
389
327
if ( current . get ( 'foo' ) != original . get ( 'foo' ) ) {
390
328
req . sendEvent = false ;
391
329
}
330
+ promise . resolve ( ) ;
392
331
} ) ;
393
332
394
333
const query = new Parse . Query ( TestObject ) ;
@@ -402,9 +341,10 @@ describe('ParseLiveQuery', function () {
402
341
} ) ;
403
342
object . set ( { foo : 'bar' } ) ;
404
343
await object . save ( ) ;
344
+ await promise ;
405
345
} ) ;
406
346
407
- xit ( 'can handle live query with fields - enable upon JS SDK support ' , async ( ) => {
347
+ it ( 'can handle live query with fields' , async ( ) => {
408
348
await reconfigureServer ( {
409
349
liveQuery : {
410
350
classNames : [ 'Test' ] ,
@@ -442,7 +382,7 @@ describe('ParseLiveQuery', function () {
442
382
await obj2 . save ( ) ;
443
383
obj2 . set ( 'foo' , 'bart' ) ;
444
384
await obj2 . save ( ) ;
445
- await new Promise ( resolve => setTimeout ( resolve , 2000 ) ) ;
385
+ await sleep ( 2000 ) ;
446
386
expect ( createSpy ) . toHaveBeenCalledTimes ( 1 ) ;
447
387
expect ( updateSpy ) . toHaveBeenCalledTimes ( 1 ) ;
448
388
} ) ;
@@ -771,14 +711,6 @@ describe('ParseLiveQuery', function () {
771
711
} ) ;
772
712
773
713
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
- } ) ;
782
714
Parse . Cloud . beforeSubscribe ( TestObject , request => {
783
715
const query = request . query ;
784
716
query . select ( 'yolo' ) ;
@@ -857,7 +789,7 @@ describe('ParseLiveQuery', function () {
857
789
object . set ( { foo : 'bar' } ) ;
858
790
await object . save ( ) ;
859
791
await object . destroy ( ) ;
860
- await new Promise ( resolve => setTimeout ( resolve , 200 ) ) ;
792
+ await sleep ( 200 ) ;
861
793
for ( const key in calls ) {
862
794
expect ( calls [ key ] ) . toHaveBeenCalled ( ) ;
863
795
}
@@ -891,9 +823,9 @@ describe('ParseLiveQuery', function () {
891
823
object . set ( { foo : 'bar' } ) ;
892
824
await object . save ( null , { useMasterKey : true } ) ;
893
825
role . getUsers ( ) . add ( user ) ;
894
- await new Promise ( resolve => setTimeout ( resolve , 1000 ) ) ;
826
+ await sleep ( 1000 ) ;
895
827
await role . save ( ) ;
896
- await new Promise ( resolve => setTimeout ( resolve , 1000 ) ) ;
828
+ await sleep ( 1000 ) ;
897
829
object . set ( 'foo' , 'yolo' ) ;
898
830
await Promise . all ( [
899
831
new Promise ( resolve => {
@@ -924,7 +856,6 @@ describe('ParseLiveQuery', function () {
924
856
const subscription = await query . subscribe ( ) ;
925
857
926
858
subscription . on ( 'create' , async obj => {
927
- await new Promise ( resolve => setTimeout ( resolve , 200 ) ) ;
928
859
expect ( obj . get ( 'user' ) . id ) . toBe ( user . id ) ;
929
860
expect ( obj . get ( 'createdWith' ) ) . toEqual ( { action : 'login' , authProvider : 'password' } ) ;
930
861
expect ( obj . get ( 'expiresAt' ) ) . toBeInstanceOf ( Date ) ;
@@ -1227,6 +1158,8 @@ describe('ParseLiveQuery', function () {
1227
1158
classNames : [ 'Yolo' ] ,
1228
1159
} ,
1229
1160
startLiveQueryServer : true ,
1161
+ verbose : false ,
1162
+ silent : true ,
1230
1163
} ;
1231
1164
if ( process . env . PARSE_SERVER_TEST_DB === 'postgres' ) {
1232
1165
config . databaseAdapter = new databaseAdapter . constructor ( {
0 commit comments