@@ -1408,10 +1408,67 @@ describe('miscellaneous', function() {
14081408      uri : 'http://localhost:8378/1/classes/TestObject' , 
14091409      json : true 
14101410    } ) . then ( body  =>  { 
1411-       fail ( 'Should not succeed' ) 
1411+       fail ( 'Should not succeed' ) ; 
14121412    } ) . catch ( err  =>  { 
14131413      expect ( err . error . error ) . toEqual ( 'unauthorized: master key is required' ) ; 
14141414      done ( ) ; 
14151415    } ) ; 
14161416  } ) ; 
1417+ 
1418+   it ( 'purge all objects in _Role also purge cache' ,  ( done )  =>  { 
1419+     let  headers  =  { 
1420+       'Content-Type' : 'application/json' , 
1421+       'X-Parse-Application-Id' : 'test' , 
1422+       'X-Parse-Master-Key' : 'test' 
1423+     } ; 
1424+     var  user ,  object ; 
1425+     createTestUser ( ) . then ( ( x )  =>  { 
1426+       user  =  x ; 
1427+       let  acl  =  new  Parse . ACL ( ) ; 
1428+       acl . setPublicReadAccess ( true ) ; 
1429+       acl . setPublicWriteAccess ( false ) ; 
1430+       let  role  =  new  Parse . Object ( '_Role' ) ; 
1431+       role . set ( 'name' ,  'TestRole' ) ; 
1432+       role . setACL ( acl ) ; 
1433+       let  users  =  role . relation ( 'users' ) ; 
1434+       users . add ( user ) ; 
1435+       return  role . save ( { } ,  {  useMasterKey : true  } ) ; 
1436+     } ) . then ( ( x )  =>  { 
1437+       let  query  =  new  Parse . Query ( '_Role' ) ; 
1438+       return  query . find ( {  useMasterKey : true  } ) ; 
1439+     } ) . then ( ( x )  =>  { 
1440+       expect ( x . length ) . toEqual ( 1 ) ; 
1441+       let  relation  =  x [ 0 ] . relation ( 'users' ) . query ( ) ; 
1442+       return  relation . first ( {  useMasterKey : true  } ) ; 
1443+     } ) . then ( ( x )  =>  { 
1444+       expect ( x . id ) . toEqual ( user . id ) ; 
1445+       object  =  new  Parse . Object ( 'TestObject' ) ; 
1446+       let  acl  =  new  Parse . ACL ( ) ; 
1447+       acl . setPublicReadAccess ( false ) ; 
1448+       acl . setPublicWriteAccess ( false ) ; 
1449+       acl . setRoleReadAccess ( 'TestRole' ,  true ) ; 
1450+       acl . setRoleWriteAccess ( 'TestRole' ,  true ) ; 
1451+       object . setACL ( acl ) ; 
1452+       return  object . save ( ) ; 
1453+     } ) . then ( ( x )  =>  { 
1454+       let  query  =  new  Parse . Query ( 'TestObject' ) ; 
1455+       return  query . find ( {  sessionToken : user . getSessionToken ( )  } ) ; 
1456+     } ) . then ( ( x )  =>  { 
1457+       expect ( x . length ) . toEqual ( 1 ) ; 
1458+       return  rp ( { 
1459+         method : 'DELETE' , 
1460+         headers : headers , 
1461+         uri : 'http://localhost:8378/1/classes/_Role' , 
1462+         json : true 
1463+       } ) ; 
1464+     } ) . then ( ( x )  =>  { 
1465+       let  query  =  new  Parse . Query ( 'TestObject' ) ; 
1466+       return  query . get ( object . id ,  {  sessionToken : user . getSessionToken ( )  } ) ; 
1467+     } ) . then ( ( x )  =>  { 
1468+       fail ( 'Should not succeed' ) ; 
1469+     } ,  ( e )  =>  { 
1470+       expect ( e . code ) . toEqual ( Parse . Error . OBJECT_NOT_FOUND ) ; 
1471+       done ( ) ; 
1472+     } ) ; 
1473+   } ) ; 
14171474} ) ; 
0 commit comments