4
4
5
5
var DatabaseAdapter = require ( '../src/DatabaseAdapter' ) ;
6
6
var request = require ( 'request' ) ;
7
+ const Parse = require ( "parse/node" ) ;
7
8
8
9
describe ( 'miscellaneous' , function ( ) {
9
10
it ( 'create a GameScore object' , function ( done ) {
@@ -372,8 +373,8 @@ describe('miscellaneous', function() {
372
373
done ( ) ;
373
374
} ) ;
374
375
} ) ;
375
-
376
- it ( 'test cloud function shoud echo keys' , function ( done ) {
376
+
377
+ it ( 'test cloud function should echo keys' , function ( done ) {
377
378
Parse . Cloud . run ( 'echoKeys' ) . then ( ( result ) => {
378
379
expect ( result . applicationId ) . toEqual ( Parse . applicationId ) ;
379
380
expect ( result . masterKey ) . toEqual ( Parse . masterKey ) ;
@@ -399,7 +400,7 @@ describe('miscellaneous', function() {
399
400
expect ( results . length ) . toEqual ( 1 ) ;
400
401
expect ( results [ 0 ] [ 'foo' ] ) . toEqual ( 'bar' ) ;
401
402
done ( ) ;
402
- } ) . fail ( err => {
403
+ } ) . fail ( err => {
403
404
fail ( err ) ;
404
405
done ( ) ;
405
406
} )
@@ -415,9 +416,9 @@ describe('miscellaneous', function() {
415
416
// Make sure the required mock for all tests is unset.
416
417
Parse . Cloud . _removeHook ( "Triggers" , "beforeSave" , "GameScore" ) ;
417
418
done ( ) ;
418
- } ) ;
419
-
420
- it ( 'object is set on create and update' , done => {
419
+ } ) ;
420
+
421
+ it ( 'object is set on create and update' , done => {
421
422
let triggerTime = 0 ;
422
423
// Register a mock beforeSave hook
423
424
Parse . Cloud . beforeSave ( 'GameScore' , ( req , res ) => {
@@ -683,7 +684,7 @@ describe('miscellaneous', function() {
683
684
// Make sure the checking has been triggered
684
685
expect ( triggerTime ) . toBe ( 2 ) ;
685
686
// Clear mock afterSave
686
- Parse . Cloud . _removeHook ( "Triggers" , "afterSave" , "GameScore" ) ;
687
+ Parse . Cloud . _removeHook ( "Triggers" , "afterSave" , "GameScore" ) ;
687
688
done ( ) ;
688
689
} , function ( error ) {
689
690
console . error ( error ) ;
@@ -732,6 +733,90 @@ describe('miscellaneous', function() {
732
733
} ) ;
733
734
} ) ;
734
735
736
+ it ( 'beforeSave receives ACL' , done => {
737
+ let triggerTime = 0 ;
738
+ // Register a mock beforeSave hook
739
+ Parse . Cloud . beforeSave ( 'GameScore' , function ( req , res ) {
740
+ let object = req . object ;
741
+ if ( triggerTime == 0 ) {
742
+ let acl = object . getACL ( ) ;
743
+ expect ( acl . getPublicReadAccess ( ) ) . toBeTruthy ( ) ;
744
+ expect ( acl . getPublicWriteAccess ( ) ) . toBeTruthy ( ) ;
745
+ } else if ( triggerTime == 1 ) {
746
+ let acl = object . getACL ( ) ;
747
+ expect ( acl . getPublicReadAccess ( ) ) . toBeFalsy ( ) ;
748
+ expect ( acl . getPublicWriteAccess ( ) ) . toBeTruthy ( ) ;
749
+ } else {
750
+ res . error ( ) ;
751
+ }
752
+ triggerTime ++ ;
753
+ res . success ( ) ;
754
+ } ) ;
755
+
756
+ let obj = new Parse . Object ( 'GameScore' ) ;
757
+ let acl = new Parse . ACL ( ) ;
758
+ acl . setPublicReadAccess ( true ) ;
759
+ acl . setPublicWriteAccess ( true ) ;
760
+ obj . setACL ( acl ) ;
761
+ obj . save ( ) . then ( ( ) => {
762
+ acl . setPublicReadAccess ( false ) ;
763
+ obj . setACL ( acl ) ;
764
+ return obj . save ( ) ;
765
+ } ) . then ( ( ) => {
766
+ // Make sure the checking has been triggered
767
+ expect ( triggerTime ) . toBe ( 2 ) ;
768
+ // Clear mock afterSave
769
+ Parse . Cloud . _removeHook ( "Triggers" , "beforeSave" , "GameScore" ) ;
770
+ done ( ) ;
771
+ } , error => {
772
+ console . error ( error ) ;
773
+ fail ( error ) ;
774
+ done ( ) ;
775
+ } ) ;
776
+ } ) ;
777
+
778
+ it ( 'afterSave receives ACL' , done => {
779
+ let triggerTime = 0 ;
780
+ // Register a mock beforeSave hook
781
+ Parse . Cloud . afterSave ( 'GameScore' , function ( req , res ) {
782
+ let object = req . object ;
783
+ if ( triggerTime == 0 ) {
784
+ let acl = object . getACL ( ) ;
785
+ expect ( acl . getPublicReadAccess ( ) ) . toBeTruthy ( ) ;
786
+ expect ( acl . getPublicWriteAccess ( ) ) . toBeTruthy ( ) ;
787
+ } else if ( triggerTime == 1 ) {
788
+ let acl = object . getACL ( ) ;
789
+ expect ( acl . getPublicReadAccess ( ) ) . toBeFalsy ( ) ;
790
+ expect ( acl . getPublicWriteAccess ( ) ) . toBeTruthy ( ) ;
791
+ } else {
792
+ res . error ( ) ;
793
+ }
794
+ triggerTime ++ ;
795
+ res . success ( ) ;
796
+ } ) ;
797
+
798
+ let obj = new Parse . Object ( 'GameScore' ) ;
799
+ let acl = new Parse . ACL ( ) ;
800
+ acl . setPublicReadAccess ( true ) ;
801
+ acl . setPublicWriteAccess ( true ) ;
802
+ obj . setACL ( acl ) ;
803
+ obj . save ( ) . then ( ( ) => {
804
+ acl . setPublicReadAccess ( false ) ;
805
+ obj . setACL ( acl ) ;
806
+ return obj . save ( ) ;
807
+ } ) . then ( ( ) => {
808
+ // Make sure the checking has been triggered
809
+ expect ( triggerTime ) . toBe ( 2 ) ;
810
+ // Clear mock afterSave
811
+ Parse . Cloud . _removeHook ( "Triggers" , "afterSave" , "GameScore" ) ;
812
+ done ( ) ;
813
+ } , error => {
814
+ console . error ( error ) ;
815
+ fail ( error ) ;
816
+ done ( ) ;
817
+ } ) ;
818
+ } ) ;
819
+
735
820
it ( 'test cloud function error handling' , ( done ) => {
736
821
// Register a function which will fail
737
822
Parse . Cloud . define ( 'willFail' , ( req , res ) => {
0 commit comments