@@ -126,40 +126,47 @@ describe('Parse Role testing', () => {
126126 it ( "Should properly resolve roles" , ( done ) => {
127127 let admin = new Parse . Role ( "Admin" , new Parse . ACL ( ) ) ;
128128 let moderator = new Parse . Role ( "Moderator" , new Parse . ACL ( ) ) ;
129- let contentCreator = new Parse . Role ( 'ContentManager' , new Parse . ACL ( ) ) ;
130-
131- Parse . Object . saveAll ( [ admin , moderator , contentCreator ] , { useMasterKey : true } ) . then ( ( ) => {
132- contentCreator . getRoles ( ) . add ( moderator ) ;
133- moderator . getRoles ( ) . add ( admin ) ;
134- return Parse . Object . saveAll ( [ admin , moderator , contentCreator ] , { useMasterKey : true } ) ;
129+ let superModerator = new Parse . Role ( "SuperModerator" , new Parse . ACL ( ) ) ;
130+ let contentManager = new Parse . Role ( 'ContentManager' , new Parse . ACL ( ) ) ;
131+ let superContentManager = new Parse . Role ( 'SuperContentManager' , new Parse . ACL ( ) ) ;
132+ Parse . Object . saveAll ( [ admin , moderator , contentManager , superModerator , superContentManager ] , { useMasterKey : true } ) . then ( ( ) => {
133+ contentManager . getRoles ( ) . add ( [ moderator , superContentManager ] ) ;
134+ moderator . getRoles ( ) . add ( [ admin , superModerator ] ) ;
135+ superContentManager . getRoles ( ) . add ( superModerator ) ;
136+ return Parse . Object . saveAll ( [ admin , moderator , contentManager , superModerator , superContentManager ] , { useMasterKey : true } ) ;
135137 } ) . then ( ( ) => {
136138 var auth = new Auth ( { config : new Config ( "test" ) , isMaster : true } ) ;
137139 // For each role, fetch their sibling, what they inherit
138140 // return with result and roleId for later comparison
139- let promises = [ admin , moderator , contentCreator ] . map ( ( role ) => {
141+ let promises = [ admin , moderator , contentManager , superModerator ] . map ( ( role ) => {
140142 return auth . _getAllRoleNamesForId ( role . id ) . then ( ( result ) => {
141143 return Parse . Promise . as ( {
142144 id : role . id ,
145+ name : role . get ( 'name' ) ,
143146 roleIds : result
144147 } ) ;
145148 } )
146149 } ) ;
147150
148151 return Parse . Promise . when ( promises ) ;
149152 } ) . then ( ( results ) => {
150-
151153 results . forEach ( ( result ) => {
152154 let id = result . id ;
153155 let roleIds = result . roleIds ;
154156 if ( id == admin . id ) {
155157 expect ( roleIds . length ) . toBe ( 2 ) ;
156158 expect ( roleIds . indexOf ( moderator . id ) ) . not . toBe ( - 1 ) ;
157- expect ( roleIds . indexOf ( contentCreator . id ) ) . not . toBe ( - 1 ) ;
159+ expect ( roleIds . indexOf ( contentManager . id ) ) . not . toBe ( - 1 ) ;
158160 } else if ( id == moderator . id ) {
159161 expect ( roleIds . length ) . toBe ( 1 ) ;
160- expect ( roleIds . indexOf ( contentCreator . id ) ) . toBe ( 0 ) ;
161- } else if ( id == contentCreator . id ) {
162+ expect ( roleIds . indexOf ( contentManager . id ) ) . toBe ( 0 ) ;
163+ } else if ( id == contentManager . id ) {
162164 expect ( roleIds . length ) . toBe ( 0 ) ;
165+ } else if ( id == superModerator . id ) {
166+ expect ( roleIds . length ) . toBe ( 3 ) ;
167+ expect ( roleIds . indexOf ( moderator . id ) ) . not . toBe ( - 1 ) ;
168+ expect ( roleIds . indexOf ( contentManager . id ) ) . not . toBe ( - 1 ) ;
169+ expect ( roleIds . indexOf ( superContentManager . id ) ) . not . toBe ( - 1 ) ;
163170 }
164171 } ) ;
165172 done ( ) ;
0 commit comments