File tree 2 files changed +37
-11
lines changed
2 files changed +37
-11
lines changed Original file line number Diff line number Diff line change 2
2
const Auth = require ( '../lib/Auth' ) ;
3
3
const UserController = require ( '../lib/Controllers/UserController' ) . UserController ;
4
4
const Config = require ( '../lib/Config' ) ;
5
+ const triggers = require ( '../lib/triggers' ) ;
5
6
const validatorFail = ( ) => {
6
7
throw 'you are not authorized' ;
7
8
} ;
@@ -1212,4 +1213,25 @@ describe('ParseLiveQuery', function () {
1212
1213
object . set ( { location : secondPoint } ) ;
1213
1214
await object . save ( ) ;
1214
1215
} ) ;
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
+ } ) ;
1215
1237
} ) ;
Original file line number Diff line number Diff line change @@ -1577,17 +1577,21 @@ RestWrite.prototype.runAfterSaveTrigger = function () {
1577
1577
const { originalObject, updatedObject } = this . buildParseObjects ( ) ;
1578
1578
updatedObject . _handleSaveResponse ( this . response . response , this . response . status || 200 ) ;
1579
1579
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
+ }
1591
1595
// Run afterSave trigger
1592
1596
return triggers
1593
1597
. maybeRunTrigger (
You can’t perform that action at this time.
0 commit comments