@@ -139,7 +139,7 @@ describe('miscellaneous', function() {
139139 return new Parse . Query ( TestObject ) . find ( ) ;
140140 } ) . then ( ( results ) => {
141141 expect ( results . length ) . toEqual ( 100 ) ;
142- done ( ) ;
142+ done ( ) ;
143143 } , ( error ) => {
144144 fail ( error ) ;
145145 done ( ) ;
@@ -281,7 +281,7 @@ describe('miscellaneous', function() {
281281 // We should have been able to fetch the object again
282282 fail ( error ) ;
283283 } ) ;
284- } )
284+ } ) ;
285285
286286 it ( 'basic beforeDelete rejection via promise' , function ( done ) {
287287 var obj = new Parse . Object ( 'BeforeDeleteFailWithPromise' ) ;
@@ -384,90 +384,154 @@ describe('miscellaneous', function() {
384384 } ) ;
385385 } ) ;
386386
387- it ( 'test beforeSave get full object on create and update' , function ( done ) {
388- var triggerTime = 0 ;
389- // Register a mock beforeSave hook
390- Parse . Cloud . beforeSave ( 'GameScore' , function ( req , res ) {
391- var object = req . object ;
392- expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
393- expect ( object . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
394- if ( triggerTime == 0 ) {
395- // Create
396- expect ( object . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
397- // No objectId/createdAt/updatedAt
398- expect ( object . id ) . toBeUndefined ( ) ;
399- expect ( object . createdAt ) . toBeUndefined ( ) ;
400- expect ( object . updatedAt ) . toBeUndefined ( ) ;
401- } else if ( triggerTime == 1 ) {
402- // Update
403- expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
404- expect ( object . id ) . not . toBeUndefined ( ) ;
405- expect ( object . createdAt ) . not . toBeUndefined ( ) ;
406- expect ( object . updatedAt ) . not . toBeUndefined ( ) ;
407- } else {
408- res . error ( ) ;
409- }
410- triggerTime ++ ;
411- res . success ( ) ;
387+ describe ( 'beforeSave' , ( ) => {
388+ beforeEach ( done => {
389+ // Make sure the required mock for all tests is unset.
390+ delete Parse . Cloud . Triggers . beforeSave . GameScore ;
391+ done ( ) ;
412392 } ) ;
413393
414- var obj = new Parse . Object ( 'GameScore' ) ;
415- obj . set ( 'foo' , 'bar' ) ;
416- obj . set ( 'fooAgain' , 'barAgain' ) ;
417- obj . save ( ) . then ( function ( ) {
418- // We only update foo
419- obj . set ( 'foo' , 'baz' ) ;
420- return obj . save ( ) ;
421- } ) . then ( function ( ) {
422- // Make sure the checking has been triggered
423- expect ( triggerTime ) . toBe ( 2 ) ;
424- // Clear mock beforeSave
394+ afterEach ( done => {
395+ // Make sure the required mock for all tests is unset.
425396 delete Parse . Cloud . Triggers . beforeSave . GameScore ;
426397 done ( ) ;
427- } , function ( error ) {
428- fail ( error ) ;
429- done ( ) ;
430398 } ) ;
431- } ) ;
432399
433- it ( 'test beforeSave get dirtyKeys on update' , function ( done ) {
434- var triggerTime = 0 ;
435- // Register a mock beforeSave hook
436- Parse . Cloud . beforeSave ( 'GameScore' , function ( req , res ) {
437- var object = req . object ;
438- expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
439- expect ( object . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
440- if ( triggerTime == 0 ) {
441- // Create
442- expect ( object . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
443- } else if ( triggerTime == 1 ) {
444- // Update
445- expect ( object . dirtyKeys ( ) ) . toEqual ( [ 'foo' ] ) ;
446- expect ( object . dirty ( 'foo' ) ) . toBeTruthy ( ) ;
447- expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
448- } else {
449- res . error ( ) ;
450- }
451- triggerTime ++ ;
452- res . success ( ) ;
400+ it ( 'object is set on create and update' , done => {
401+ let triggerTime = 0 ;
402+ // Register a mock beforeSave hook
403+ Parse . Cloud . beforeSave ( 'GameScore' , ( req , res ) => {
404+ let object = req . object ;
405+ expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
406+ expect ( object . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
407+ if ( triggerTime == 0 ) {
408+ // Create
409+ expect ( object . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
410+ // No objectId/createdAt/updatedAt
411+ expect ( object . id ) . toBeUndefined ( ) ;
412+ expect ( object . createdAt ) . toBeUndefined ( ) ;
413+ expect ( object . updatedAt ) . toBeUndefined ( ) ;
414+ } else if ( triggerTime == 1 ) {
415+ // Update
416+ expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
417+ expect ( object . id ) . not . toBeUndefined ( ) ;
418+ expect ( object . createdAt ) . not . toBeUndefined ( ) ;
419+ expect ( object . updatedAt ) . not . toBeUndefined ( ) ;
420+ } else {
421+ res . error ( ) ;
422+ }
423+ triggerTime ++ ;
424+ res . success ( ) ;
425+ } ) ;
426+
427+ let obj = new Parse . Object ( 'GameScore' ) ;
428+ obj . set ( 'foo' , 'bar' ) ;
429+ obj . set ( 'fooAgain' , 'barAgain' ) ;
430+ obj . save ( ) . then ( ( ) => {
431+ // We only update foo
432+ obj . set ( 'foo' , 'baz' ) ;
433+ return obj . save ( ) ;
434+ } ) . then ( ( ) => {
435+ // Make sure the checking has been triggered
436+ expect ( triggerTime ) . toBe ( 2 ) ;
437+ done ( ) ;
438+ } , error => {
439+ fail ( error ) ;
440+ done ( ) ;
441+ } ) ;
453442 } ) ;
454443
455- var obj = new Parse . Object ( 'GameScore' ) ;
456- obj . set ( 'foo' , 'bar' ) ;
457- obj . set ( 'fooAgain' , 'barAgain' ) ;
458- obj . save ( ) . then ( function ( ) {
459- // We only update foo
460- obj . set ( 'foo' , 'baz' ) ;
461- return obj . save ( ) ;
462- } ) . then ( function ( ) {
463- // Make sure the checking has been triggered
464- expect ( triggerTime ) . toBe ( 2 ) ;
465- // Clear mock beforeSave
466- delete Parse . Cloud . Triggers . beforeSave . GameScore ;
467- done ( ) ;
468- } , function ( error ) {
469- fail ( error ) ;
470- done ( ) ;
444+ it ( 'dirtyKeys are set on update' , done => {
445+ let triggerTime = 0 ;
446+ // Register a mock beforeSave hook
447+ Parse . Cloud . beforeSave ( 'GameScore' , ( req , res ) => {
448+ var object = req . object ;
449+ expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
450+ expect ( object . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
451+ if ( triggerTime == 0 ) {
452+ // Create
453+ expect ( object . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
454+ } else if ( triggerTime == 1 ) {
455+ // Update
456+ expect ( object . dirtyKeys ( ) ) . toEqual ( [ 'foo' ] ) ;
457+ expect ( object . dirty ( 'foo' ) ) . toBeTruthy ( ) ;
458+ expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
459+ } else {
460+ res . error ( ) ;
461+ }
462+ triggerTime ++ ;
463+ res . success ( ) ;
464+ } ) ;
465+
466+ let obj = new Parse . Object ( 'GameScore' ) ;
467+ obj . set ( 'foo' , 'bar' ) ;
468+ obj . set ( 'fooAgain' , 'barAgain' ) ;
469+ obj . save ( ) . then ( ( ) => {
470+ // We only update foo
471+ obj . set ( 'foo' , 'baz' ) ;
472+ return obj . save ( ) ;
473+ } ) . then ( ( ) => {
474+ // Make sure the checking has been triggered
475+ expect ( triggerTime ) . toBe ( 2 ) ;
476+ done ( ) ;
477+ } , function ( error ) {
478+ fail ( error ) ;
479+ done ( ) ;
480+ } ) ;
481+ } ) ;
482+
483+ it ( 'original object is set on update' , done => {
484+ let triggerTime = 0 ;
485+ // Register a mock beforeSave hook
486+ Parse . Cloud . beforeSave ( 'GameScore' , ( req , res ) => {
487+ let object = req . object ;
488+ expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
489+ expect ( object . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
490+ let originalObject = req . original ;
491+ if ( triggerTime == 0 ) {
492+ // No id/createdAt/updatedAt
493+ expect ( object . id ) . toBeUndefined ( ) ;
494+ expect ( object . createdAt ) . toBeUndefined ( ) ;
495+ expect ( object . updatedAt ) . toBeUndefined ( ) ;
496+ // Create
497+ expect ( object . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
498+ // Check the originalObject is undefined
499+ expect ( originalObject ) . toBeUndefined ( ) ;
500+ } else if ( triggerTime == 1 ) {
501+ // Update
502+ expect ( object . id ) . not . toBeUndefined ( ) ;
503+ expect ( object . createdAt ) . not . toBeUndefined ( ) ;
504+ expect ( object . updatedAt ) . not . toBeUndefined ( ) ;
505+ expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
506+ // Check the originalObject
507+ expect ( originalObject instanceof Parse . Object ) . toBeTruthy ( ) ;
508+ expect ( originalObject . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
509+ expect ( originalObject . id ) . not . toBeUndefined ( ) ;
510+ expect ( originalObject . createdAt ) . not . toBeUndefined ( ) ;
511+ expect ( originalObject . updatedAt ) . not . toBeUndefined ( ) ;
512+ expect ( originalObject . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
513+ } else {
514+ res . error ( ) ;
515+ }
516+ triggerTime ++ ;
517+ res . success ( ) ;
518+ } ) ;
519+
520+ let obj = new Parse . Object ( 'GameScore' ) ;
521+ obj . set ( 'foo' , 'bar' ) ;
522+ obj . set ( 'fooAgain' , 'barAgain' ) ;
523+ obj . save ( ) . then ( ( ) => {
524+ // We only update foo
525+ obj . set ( 'foo' , 'baz' ) ;
526+ return obj . save ( ) ;
527+ } ) . then ( ( ) => {
528+ // Make sure the checking has been triggered
529+ expect ( triggerTime ) . toBe ( 2 ) ;
530+ done ( ) ;
531+ } , error => {
532+ fail ( error ) ;
533+ done ( ) ;
534+ } ) ;
471535 } ) ;
472536 } ) ;
473537
@@ -513,62 +577,6 @@ describe('miscellaneous', function() {
513577 } ) ;
514578 } ) ;
515579
516- it ( 'test beforeSave get original object on update' , function ( done ) {
517- var triggerTime = 0 ;
518- // Register a mock beforeSave hook
519- Parse . Cloud . beforeSave ( 'GameScore' , function ( req , res ) {
520- var object = req . object ;
521- expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
522- expect ( object . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
523- var originalObject = req . original ;
524- if ( triggerTime == 0 ) {
525- // No id/createdAt/updatedAt
526- expect ( object . id ) . toBeUndefined ( ) ;
527- expect ( object . createdAt ) . toBeUndefined ( ) ;
528- expect ( object . updatedAt ) . toBeUndefined ( ) ;
529- // Create
530- expect ( object . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
531- // Check the originalObject is undefined
532- expect ( originalObject ) . toBeUndefined ( ) ;
533- } else if ( triggerTime == 1 ) {
534- // Update
535- expect ( object . id ) . not . toBeUndefined ( ) ;
536- expect ( object . createdAt ) . not . toBeUndefined ( ) ;
537- expect ( object . updatedAt ) . not . toBeUndefined ( ) ;
538- expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
539- // Check the originalObject
540- expect ( originalObject instanceof Parse . Object ) . toBeTruthy ( ) ;
541- expect ( originalObject . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
542- expect ( originalObject . id ) . not . toBeUndefined ( ) ;
543- expect ( originalObject . createdAt ) . not . toBeUndefined ( ) ;
544- expect ( originalObject . updatedAt ) . not . toBeUndefined ( ) ;
545- expect ( originalObject . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
546- } else {
547- res . error ( ) ;
548- }
549- triggerTime ++ ;
550- res . success ( ) ;
551- } ) ;
552-
553- var obj = new Parse . Object ( 'GameScore' ) ;
554- obj . set ( 'foo' , 'bar' ) ;
555- obj . set ( 'fooAgain' , 'barAgain' ) ;
556- obj . save ( ) . then ( function ( ) {
557- // We only update foo
558- obj . set ( 'foo' , 'baz' ) ;
559- return obj . save ( ) ;
560- } ) . then ( function ( ) {
561- // Make sure the checking has been triggered
562- expect ( triggerTime ) . toBe ( 2 ) ;
563- // Clear mock beforeSave
564- delete Parse . Cloud . Triggers . beforeSave . GameScore ;
565- done ( ) ;
566- } , function ( error ) {
567- fail ( error ) ;
568- done ( ) ;
569- } ) ;
570- } ) ;
571-
572580 it ( 'test afterSave get original object on update' , function ( done ) {
573581 var triggerTime = 0 ;
574582 // Register a mock beforeSave hook
0 commit comments