@@ -15,35 +15,18 @@ describe('ParseServerRESTController', () => {
1515 ) ;
1616 } ) ;
1717
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 ) ;
3021 } ) ;
3122
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 ) ;
4326 } ) ;
4427
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' , {
4730 requests : [
4831 {
4932 method : 'GET' ,
@@ -59,20 +42,12 @@ describe('ParseServerRESTController', () => {
5942 path : '/classes/MyObject' ,
6043 } ,
6144 ] ,
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 ) ;
7247 } ) ;
7348
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' , {
7651 requests : [
7752 {
7853 method : 'GET' ,
@@ -89,16 +64,8 @@ describe('ParseServerRESTController', () => {
8964 } ,
9065 ] ,
9166 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 ) ;
10269 } ) ;
10370
10471 it ( 'should handle response status' , async ( ) => {
@@ -186,54 +153,43 @@ describe('ParseServerRESTController', () => {
186153 }
187154 } ) ;
188155
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 ( ) => {
191157 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+ ] ) ;
237193 } ) ;
238194
239195 it ( 'should not save anything when one operation fails in a transaction' , async ( ) => {
@@ -560,21 +516,11 @@ describe('ParseServerRESTController', () => {
560516 } ) ;
561517 }
562518
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' ) ;
578524 } ) ;
579525
580526 it ( 'should handle a POST request with context' , async ( ) => {
@@ -593,125 +539,76 @@ describe('ParseServerRESTController', () => {
593539 ) ;
594540 } ) ;
595541
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 ) ;
616550 } ) ;
617551
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 ) ;
640561 } ) ;
641562
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+ }
657574 } ) ;
658575
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+ }
674587 } ) ;
675588
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' , {
678591 username : 'hello' ,
679592 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 ) ;
690598 } ) ;
691599
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 (
694602 'POST' ,
695603 '/classes/_User' ,
696604 { username : 'hello' , password : 'world' } ,
697605 { 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' ) ;
715612 } ) ;
716613
717614 it ( 'ensures logIn is saved with installationId' , async ( ) => {
0 commit comments