@@ -15,35 +15,18 @@ describe('ParseServerRESTController', () => {
15
15
) ;
16
16
} ) ;
17
17
18
- it ( 'should handle a get request' , done => {
19
- RESTController . request ( 'GET' , '/classes/MyObject' ) . then (
20
- res => {
21
- expect ( res . results . length ) . toBe ( 0 ) ;
22
- done ( ) ;
23
- } ,
24
- err => {
25
- console . log ( err ) ;
26
- jfail ( err ) ;
27
- done ( ) ;
28
- }
29
- ) ;
18
+ it ( 'should handle a get request' , async ( ) => {
19
+ const res = await RESTController . request ( 'GET' , '/classes/MyObject' ) ;
20
+ expect ( res . results . length ) . toBe ( 0 ) ;
30
21
} ) ;
31
22
32
- it ( 'should handle a get request with full serverURL mount path' , done => {
33
- RESTController . request ( 'GET' , '/1/classes/MyObject' ) . then (
34
- res => {
35
- expect ( res . results . length ) . toBe ( 0 ) ;
36
- done ( ) ;
37
- } ,
38
- err => {
39
- jfail ( err ) ;
40
- done ( ) ;
41
- }
42
- ) ;
23
+ it ( 'should handle a get request with full serverURL mount path' , async ( ) => {
24
+ const res = await RESTController . request ( 'GET' , '/1/classes/MyObject' ) ;
25
+ expect ( res . results . length ) . toBe ( 0 ) ;
43
26
} ) ;
44
27
45
- it ( 'should handle a POST batch without transaction' , done => {
46
- RESTController . request ( 'POST' , 'batch' , {
28
+ it ( 'should handle a POST batch without transaction' , async ( ) => {
29
+ const res = await RESTController . request ( 'POST' , 'batch' , {
47
30
requests : [
48
31
{
49
32
method : 'GET' ,
@@ -59,20 +42,12 @@ describe('ParseServerRESTController', () => {
59
42
path : '/classes/MyObject' ,
60
43
} ,
61
44
] ,
62
- } ) . then (
63
- res => {
64
- expect ( res . length ) . toBe ( 3 ) ;
65
- done ( ) ;
66
- } ,
67
- err => {
68
- jfail ( err ) ;
69
- done ( ) ;
70
- }
71
- ) ;
45
+ } ) ;
46
+ expect ( res . length ) . toBe ( 3 ) ;
72
47
} ) ;
73
48
74
- it ( 'should handle a POST batch with transaction=false' , done => {
75
- RESTController . request ( 'POST' , 'batch' , {
49
+ it ( 'should handle a POST batch with transaction=false' , async ( ) => {
50
+ const res = await RESTController . request ( 'POST' , 'batch' , {
76
51
requests : [
77
52
{
78
53
method : 'GET' ,
@@ -89,16 +64,8 @@ describe('ParseServerRESTController', () => {
89
64
} ,
90
65
] ,
91
66
transaction : false ,
92
- } ) . then (
93
- res => {
94
- expect ( res . length ) . toBe ( 3 ) ;
95
- done ( ) ;
96
- } ,
97
- err => {
98
- jfail ( err ) ;
99
- done ( ) ;
100
- }
101
- ) ;
67
+ } ) ;
68
+ expect ( res . length ) . toBe ( 3 ) ;
102
69
} ) ;
103
70
104
71
it ( 'should handle response status' , async ( ) => {
@@ -186,54 +153,43 @@ describe('ParseServerRESTController', () => {
186
153
}
187
154
} ) ;
188
155
189
- it ( 'should handle a batch request with transaction = true' , async done => {
190
- await reconfigureServer ( ) ;
156
+ it ( 'should handle a batch request with transaction = true' , async ( ) => {
191
157
const myObject = new Parse . Object ( 'MyObject' ) ; // This is important because transaction only works on pre-existing collections
192
- myObject
193
- . save ( )
194
- . then ( ( ) => {
195
- return myObject . destroy ( ) ;
196
- } )
197
- . then ( ( ) => {
198
- spyOn ( databaseAdapter , 'createObject' ) . and . callThrough ( ) ;
199
-
200
- return RESTController . request ( 'POST' , 'batch' , {
201
- requests : [
202
- {
203
- method : 'POST' ,
204
- path : '/1/classes/MyObject' ,
205
- body : { key : 'value1' } ,
206
- } ,
207
- {
208
- method : 'POST' ,
209
- path : '/1/classes/MyObject' ,
210
- body : { key : 'value2' } ,
211
- } ,
212
- ] ,
213
- transaction : true ,
214
- } ) . then ( response => {
215
- expect ( response . length ) . toEqual ( 2 ) ;
216
- expect ( response [ 0 ] . success . objectId ) . toBeDefined ( ) ;
217
- expect ( response [ 0 ] . success . createdAt ) . toBeDefined ( ) ;
218
- expect ( response [ 1 ] . success . objectId ) . toBeDefined ( ) ;
219
- expect ( response [ 1 ] . success . createdAt ) . toBeDefined ( ) ;
220
- const query = new Parse . Query ( 'MyObject' ) ;
221
- return query . find ( ) . then ( results => {
222
- expect ( databaseAdapter . createObject . calls . count ( ) % 2 ) . toBe ( 0 ) ;
223
- for ( let i = 0 ; i + 1 < databaseAdapter . createObject . calls . length ; i = i + 2 ) {
224
- expect ( databaseAdapter . createObject . calls . argsFor ( i ) [ 3 ] ) . toBe (
225
- databaseAdapter . createObject . calls . argsFor ( i + 1 ) [ 3 ]
226
- ) ;
227
- }
228
- expect ( results . map ( result => result . get ( 'key' ) ) . sort ( ) ) . toEqual ( [
229
- 'value1' ,
230
- 'value2' ,
231
- ] ) ;
232
- done ( ) ;
233
- } ) ;
234
- } ) ;
235
- } )
236
- . catch ( done . fail ) ;
158
+ await myObject . save ( ) ;
159
+ await myObject . destroy ( ) ;
160
+ spyOn ( databaseAdapter , 'createObject' ) . and . callThrough ( ) ;
161
+ const response = await RESTController . request ( 'POST' , 'batch' , {
162
+ requests : [
163
+ {
164
+ method : 'POST' ,
165
+ path : '/1/classes/MyObject' ,
166
+ body : { key : 'value1' } ,
167
+ } ,
168
+ {
169
+ method : 'POST' ,
170
+ path : '/1/classes/MyObject' ,
171
+ body : { key : 'value2' } ,
172
+ } ,
173
+ ] ,
174
+ transaction : true ,
175
+ } ) ;
176
+ expect ( response . length ) . toEqual ( 2 ) ;
177
+ expect ( response [ 0 ] . success . objectId ) . toBeDefined ( ) ;
178
+ expect ( response [ 0 ] . success . createdAt ) . toBeDefined ( ) ;
179
+ expect ( response [ 1 ] . success . objectId ) . toBeDefined ( ) ;
180
+ expect ( response [ 1 ] . success . createdAt ) . toBeDefined ( ) ;
181
+ const query = new Parse . Query ( 'MyObject' ) ;
182
+ const results = await query . find ( ) ;
183
+ expect ( databaseAdapter . createObject . calls . count ( ) % 2 ) . toBe ( 0 ) ;
184
+ for ( let i = 0 ; i + 1 < databaseAdapter . createObject . calls . length ; i = i + 2 ) {
185
+ expect ( databaseAdapter . createObject . calls . argsFor ( i ) [ 3 ] ) . toBe (
186
+ databaseAdapter . createObject . calls . argsFor ( i + 1 ) [ 3 ]
187
+ ) ;
188
+ }
189
+ expect ( results . map ( result => result . get ( 'key' ) ) . sort ( ) ) . toEqual ( [
190
+ 'value1' ,
191
+ 'value2' ,
192
+ ] ) ;
237
193
} ) ;
238
194
239
195
it ( 'should not save anything when one operation fails in a transaction' , async ( ) => {
@@ -560,21 +516,11 @@ describe('ParseServerRESTController', () => {
560
516
} ) ;
561
517
}
562
518
563
- it ( 'should handle a POST request' , done => {
564
- RESTController . request ( 'POST' , '/classes/MyObject' , { key : 'value' } )
565
- . then ( ( ) => {
566
- return RESTController . request ( 'GET' , '/classes/MyObject' ) ;
567
- } )
568
- . then ( res => {
569
- expect ( res . results . length ) . toBe ( 1 ) ;
570
- expect ( res . results [ 0 ] . key ) . toEqual ( 'value' ) ;
571
- done ( ) ;
572
- } )
573
- . catch ( err => {
574
- console . log ( err ) ;
575
- jfail ( err ) ;
576
- done ( ) ;
577
- } ) ;
519
+ it ( 'should handle a POST request' , async ( ) => {
520
+ await RESTController . request ( 'POST' , '/classes/MyObject' , { key : 'value' } ) ;
521
+ const res = await RESTController . request ( 'GET' , '/classes/MyObject' ) ;
522
+ expect ( res . results . length ) . toBe ( 1 ) ;
523
+ expect ( res . results [ 0 ] . key ) . toEqual ( 'value' ) ;
578
524
} ) ;
579
525
580
526
it ( 'should handle a POST request with context' , async ( ) => {
@@ -593,125 +539,76 @@ describe('ParseServerRESTController', () => {
593
539
) ;
594
540
} ) ;
595
541
596
- it ( 'ensures sessionTokens are properly handled' , done => {
597
- let userId ;
598
- Parse . User . signUp ( 'user' , 'pass' )
599
- . then ( user => {
600
- userId = user . id ;
601
- const sessionToken = user . getSessionToken ( ) ;
602
- return RESTController . request ( 'GET' , '/users/me' , undefined , {
603
- sessionToken,
604
- } ) ;
605
- } )
606
- . then ( res => {
607
- // Result is in JSON format
608
- expect ( res . objectId ) . toEqual ( userId ) ;
609
- done ( ) ;
610
- } )
611
- . catch ( err => {
612
- console . log ( err ) ;
613
- jfail ( err ) ;
614
- done ( ) ;
615
- } ) ;
542
+ it ( 'ensures sessionTokens are properly handled' , async ( ) => {
543
+ const user = await Parse . User . signUp ( 'user' , 'pass' ) ;
544
+ const sessionToken = user . getSessionToken ( ) ;
545
+ const res = await RESTController . request ( 'GET' , '/users/me' , undefined , {
546
+ sessionToken,
547
+ } ) ;
548
+ // Result is in JSON format
549
+ expect ( res . objectId ) . toEqual ( user . id ) ;
616
550
} ) ;
617
551
618
- it ( 'ensures masterKey is properly handled' , done => {
619
- let userId ;
620
- Parse . User . signUp ( 'user' , 'pass' )
621
- . then ( user => {
622
- userId = user . id ;
623
- return Parse . User . logOut ( ) . then ( ( ) => {
624
- return RESTController . request ( 'GET' , '/classes/_User' , undefined , {
625
- useMasterKey : true ,
626
- } ) ;
627
- } ) ;
628
- } )
629
- . then (
630
- res => {
631
- expect ( res . results . length ) . toBe ( 1 ) ;
632
- expect ( res . results [ 0 ] . objectId ) . toEqual ( userId ) ;
633
- done ( ) ;
634
- } ,
635
- err => {
636
- jfail ( err ) ;
637
- done ( ) ;
638
- }
639
- ) ;
552
+ it ( 'ensures masterKey is properly handled' , async ( ) => {
553
+ const user = await Parse . User . signUp ( 'user' , 'pass' ) ;
554
+ const userId = user . id ;
555
+ await Parse . User . logOut ( ) ;
556
+ const res = await RESTController . request ( 'GET' , '/classes/_User' , undefined , {
557
+ useMasterKey : true ,
558
+ } ) ;
559
+ expect ( res . results . length ) . toBe ( 1 ) ;
560
+ expect ( res . results [ 0 ] . objectId ) . toEqual ( userId ) ;
640
561
} ) ;
641
562
642
- it ( 'ensures no user is created when passing an empty username' , done => {
643
- RESTController . request ( 'POST' , '/classes/_User' , {
644
- username : '' ,
645
- password : 'world' ,
646
- } ) . then (
647
- ( ) => {
648
- jfail ( new Error ( 'Success callback should not be called when passing an empty username.' ) ) ;
649
- done ( ) ;
650
- } ,
651
- err => {
652
- expect ( err . code ) . toBe ( Parse . Error . USERNAME_MISSING ) ;
653
- expect ( err . message ) . toBe ( 'bad or missing username' ) ;
654
- done ( ) ;
655
- }
656
- ) ;
563
+ it ( 'ensures no user is created when passing an empty username' , async ( ) => {
564
+ try {
565
+ await RESTController . request ( 'POST' , '/classes/_User' , {
566
+ username : '' ,
567
+ password : 'world' ,
568
+ } ) ;
569
+ fail ( 'Success callback should not be called when passing an empty username.' ) ;
570
+ } catch ( err ) {
571
+ expect ( err . code ) . toBe ( Parse . Error . USERNAME_MISSING ) ;
572
+ expect ( err . message ) . toBe ( 'bad or missing username' ) ;
573
+ }
657
574
} ) ;
658
575
659
- it ( 'ensures no user is created when passing an empty password' , done => {
660
- RESTController . request ( 'POST' , '/classes/_User' , {
661
- username : 'hello' ,
662
- password : '' ,
663
- } ) . then (
664
- ( ) => {
665
- jfail ( new Error ( 'Success callback should not be called when passing an empty password.' ) ) ;
666
- done ( ) ;
667
- } ,
668
- err => {
669
- expect ( err . code ) . toBe ( Parse . Error . PASSWORD_MISSING ) ;
670
- expect ( err . message ) . toBe ( 'password is required' ) ;
671
- done ( ) ;
672
- }
673
- ) ;
576
+ it ( 'ensures no user is created when passing an empty password' , async ( ) => {
577
+ try {
578
+ await RESTController . request ( 'POST' , '/classes/_User' , {
579
+ username : 'hello' ,
580
+ password : '' ,
581
+ } ) ;
582
+ fail ( 'Success callback should not be called when passing an empty password.' ) ;
583
+ } catch ( err ) {
584
+ expect ( err . code ) . toBe ( Parse . Error . PASSWORD_MISSING ) ;
585
+ expect ( err . message ) . toBe ( 'password is required' ) ;
586
+ }
674
587
} ) ;
675
588
676
- it ( 'ensures no session token is created on creating users' , done => {
677
- RESTController . request ( 'POST' , '/classes/_User' , {
589
+ it ( 'ensures no session token is created on creating users' , async ( ) => {
590
+ const user = await RESTController . request ( 'POST' , '/classes/_User' , {
678
591
username : 'hello' ,
679
592
password : 'world' ,
680
- } )
681
- . then ( user => {
682
- expect ( user . sessionToken ) . toBeUndefined ( ) ;
683
- const query = new Parse . Query ( '_Session' ) ;
684
- return query . find ( { useMasterKey : true } ) ;
685
- } )
686
- . then ( sessions => {
687
- expect ( sessions . length ) . toBe ( 0 ) ;
688
- done ( ) ;
689
- } , done . fail ) ;
593
+ } ) ;
594
+ expect ( user . sessionToken ) . toBeUndefined ( ) ;
595
+ const query = new Parse . Query ( '_Session' ) ;
596
+ const sessions = await query . find ( { useMasterKey : true } ) ;
597
+ expect ( sessions . length ) . toBe ( 0 ) ;
690
598
} ) ;
691
599
692
- it ( 'ensures a session token is created when passing installationId != cloud' , done => {
693
- RESTController . request (
600
+ it ( 'ensures a session token is created when passing installationId != cloud' , async ( ) => {
601
+ const user = await RESTController . request (
694
602
'POST' ,
695
603
'/classes/_User' ,
696
604
{ username : 'hello' , password : 'world' } ,
697
605
{ installationId : 'my-installation' }
698
- )
699
- . then ( user => {
700
- expect ( user . sessionToken ) . not . toBeUndefined ( ) ;
701
- const query = new Parse . Query ( '_Session' ) ;
702
- return query . find ( { useMasterKey : true } ) ;
703
- } )
704
- . then (
705
- sessions => {
706
- expect ( sessions . length ) . toBe ( 1 ) ;
707
- expect ( sessions [ 0 ] . get ( 'installationId' ) ) . toBe ( 'my-installation' ) ;
708
- done ( ) ;
709
- } ,
710
- err => {
711
- jfail ( err ) ;
712
- done ( ) ;
713
- }
714
- ) ;
606
+ ) ;
607
+ expect ( user . sessionToken ) . not . toBeUndefined ( ) ;
608
+ const query = new Parse . Query ( '_Session' ) ;
609
+ const sessions = await query . find ( { useMasterKey : true } ) ;
610
+ expect ( sessions . length ) . toBe ( 1 ) ;
611
+ expect ( sessions [ 0 ] . get ( 'installationId' ) ) . toBe ( 'my-installation' ) ;
715
612
} ) ;
716
613
717
614
it ( 'ensures logIn is saved with installationId' , async ( ) => {
0 commit comments