File tree Expand file tree Collapse file tree 2 files changed +37
-11
lines changed Expand file tree Collapse file tree 2 files changed +37
-11
lines changed Original file line number Diff line number Diff line change 22const Auth = require ( '../lib/Auth' ) ;
33const UserController = require ( '../lib/Controllers/UserController' ) . UserController ;
44const Config = require ( '../lib/Config' ) ;
5+ const triggers = require ( '../lib/triggers' ) ;
56const validatorFail = ( ) => {
67 throw 'you are not authorized' ;
78} ;
@@ -1212,4 +1213,25 @@ describe('ParseLiveQuery', function () {
12121213 object . set ( { location : secondPoint } ) ;
12131214 await object . save ( ) ;
12141215 } ) ;
1216+
1217+ it ( 'prevent afterSave trigger if not exists' , async ( ) => {
1218+ await reconfigureServer ( {
1219+ liveQuery : {
1220+ classNames : [ 'TestObject' ] ,
1221+ } ,
1222+ startLiveQueryServer : true ,
1223+ verbose : false ,
1224+ silent : true ,
1225+ } ) ;
1226+ spyOn ( triggers , 'maybeRunTrigger' ) . and . callThrough ( ) ;
1227+ const object1 = new TestObject ( ) ;
1228+ const object2 = new TestObject ( ) ;
1229+ const object3 = new TestObject ( ) ;
1230+ await Parse . Object . saveAll ( [ object1 , object2 , object3 ] ) ;
1231+
1232+ expect ( triggers . maybeRunTrigger ) . toHaveBeenCalledTimes ( 0 ) ;
1233+ expect ( object1 . id ) . toBeDefined ( ) ;
1234+ expect ( object2 . id ) . toBeDefined ( ) ;
1235+ expect ( object3 . id ) . toBeDefined ( ) ;
1236+ } ) ;
12151237} ) ;
Original file line number Diff line number Diff line change @@ -1577,17 +1577,21 @@ RestWrite.prototype.runAfterSaveTrigger = function () {
15771577 const { originalObject, updatedObject } = this . buildParseObjects ( ) ;
15781578 updatedObject . _handleSaveResponse ( this . response . response , this . response . status || 200 ) ;
15791579
1580- this . config . database . loadSchema ( ) . then ( schemaController => {
1581- // Notifiy LiveQueryServer if possible
1582- const perms = schemaController . getClassLevelPermissions ( updatedObject . className ) ;
1583- this . config . liveQueryController . onAfterSave (
1584- updatedObject . className ,
1585- updatedObject ,
1586- originalObject ,
1587- perms
1588- ) ;
1589- } ) ;
1590-
1580+ if ( hasLiveQuery ) {
1581+ this . config . database . loadSchema ( ) . then ( schemaController => {
1582+ // Notify LiveQueryServer if possible
1583+ const perms = schemaController . getClassLevelPermissions ( updatedObject . className ) ;
1584+ this . config . liveQueryController . onAfterSave (
1585+ updatedObject . className ,
1586+ updatedObject ,
1587+ originalObject ,
1588+ perms
1589+ ) ;
1590+ } ) ;
1591+ }
1592+ if ( ! hasAfterSaveHook ) {
1593+ return Promise . resolve ( ) ;
1594+ }
15911595 // Run afterSave trigger
15921596 return triggers
15931597 . maybeRunTrigger (
You can’t perform that action at this time.
0 commit comments