@@ -126,40 +126,47 @@ describe('Parse Role testing', () => {
126
126
it ( "Should properly resolve roles" , ( done ) => {
127
127
let admin = new Parse . Role ( "Admin" , new Parse . ACL ( ) ) ;
128
128
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 } ) ;
135
137
} ) . then ( ( ) => {
136
138
var auth = new Auth ( { config : new Config ( "test" ) , isMaster : true } ) ;
137
139
// For each role, fetch their sibling, what they inherit
138
140
// 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 ) => {
140
142
return auth . _getAllRoleNamesForId ( role . id ) . then ( ( result ) => {
141
143
return Parse . Promise . as ( {
142
144
id : role . id ,
145
+ name : role . get ( 'name' ) ,
143
146
roleIds : result
144
147
} ) ;
145
148
} )
146
149
} ) ;
147
150
148
151
return Parse . Promise . when ( promises ) ;
149
152
} ) . then ( ( results ) => {
150
-
151
153
results . forEach ( ( result ) => {
152
154
let id = result . id ;
153
155
let roleIds = result . roleIds ;
154
156
if ( id == admin . id ) {
155
157
expect ( roleIds . length ) . toBe ( 2 ) ;
156
158
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 ) ;
158
160
} else if ( id == moderator . id ) {
159
161
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 ) {
162
164
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 ) ;
163
170
}
164
171
} ) ;
165
172
done ( ) ;
0 commit comments