@@ -860,15 +860,15 @@ describe('cloud validator', () => {
860860 } ) ;
861861 } ) ;
862862
863- it ( 'basic validator requireUserRoles ' , async function ( done ) {
863+ it ( 'basic validator requireUserRole ' , async function ( done ) {
864864 Parse . Cloud . define (
865865 'cloudFunction' ,
866866 ( ) => {
867867 return true ;
868868 } ,
869869 {
870870 requireUser : true ,
871- requireUserRoles : [ 'Admin' ] ,
871+ requireUserRole : [ 'Admin' ] ,
872872 }
873873 ) ;
874874 const user = await Parse . User . signUp ( 'testuser' , 'p@ssword' ) ;
@@ -887,6 +887,36 @@ describe('cloud validator', () => {
887887 done ( ) ;
888888 } ) ;
889889
890+ it ( 'basic validator requireUserRoles' , async function ( done ) {
891+ Parse . Cloud . define (
892+ 'cloudFunction' ,
893+ ( ) => {
894+ return true ;
895+ } ,
896+ {
897+ requireUser : true ,
898+ requireUserRoles : [ 'Admin' , 'Admin2' ] ,
899+ }
900+ ) ;
901+ const user = await Parse . User . signUp ( 'testuser' , 'p@ssword' ) ;
902+ try {
903+ await Parse . Cloud . run ( 'cloudFunction' ) ;
904+ fail ( 'cloud validator should have failed.' ) ;
905+ } catch ( e ) {
906+ expect ( e . message ) . toBe ( 'Validation failed. User does not match all the required roles.' ) ;
907+ }
908+ const roleACL = new Parse . ACL ( ) ;
909+ roleACL . setPublicReadAccess ( true ) ;
910+ const role = new Parse . Role ( 'Admin' , roleACL ) ;
911+ role . getUsers ( ) . add ( user ) ;
912+
913+ const role2 = new Parse . Role ( 'Admin2' , roleACL ) ;
914+ role2 . getUsers ( ) . add ( user ) ;
915+ await Promise . all ( [ role . save ( { useMasterKey : true } ) , role2 . save ( { useMasterKey : true } ) ] ) ;
916+ await Parse . Cloud . run ( 'cloudFunction' ) ;
917+ done ( ) ;
918+ } ) ;
919+
890920 it ( 'basic requireUserRoles but no user' , async function ( done ) {
891921 Parse . Cloud . define (
892922 'cloudFunction' ,
0 commit comments