Skip to content

Commit dcfc815

Browse files
airdrummingfoolflovilmart
authored andcommitted
Adding a test demonstrating issue #1840.
1 parent 7a2e906 commit dcfc815

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

spec/CloudCode.spec.js

+56
Original file line numberDiff line numberDiff line change
@@ -666,4 +666,60 @@ describe('Cloud Code', () => {
666666
done();
667667
});
668668
});
669+
670+
it('should fully delete objects when using `unset` with beforeSave (regression test for #1840)', done => {
671+
var TestObject = Parse.Object.extend('TestObject');
672+
var NoBeforeSaveObject = Parse.Object.extend('NoBeforeSave');
673+
var BeforeSaveObject = Parse.Object.extend('BeforeSaveChanged');
674+
675+
Parse.Cloud.beforeSave('BeforeSaveChanged', (req, res) => {
676+
var object = req.object;
677+
object.set('before', 'save');
678+
res.success();
679+
});
680+
681+
Parse.Cloud.define('removeme', (req, res) => {
682+
var testObject = new TestObject();
683+
testObject.save()
684+
.then(testObject => {
685+
var object = new NoBeforeSaveObject({remove: testObject});
686+
return object.save();
687+
})
688+
.then(object => {
689+
object.unset('remove');
690+
return object.save();
691+
})
692+
.then(object => {
693+
res.success(object);
694+
});
695+
});
696+
697+
Parse.Cloud.define('removeme2', (req, res) => {
698+
var testObject = new TestObject();
699+
testObject.save()
700+
.then(testObject => {
701+
var object = new BeforeSaveObject({remove: testObject});
702+
return object.save();
703+
})
704+
.then(object => {
705+
object.unset('remove');
706+
return object.save();
707+
})
708+
.then(object => {
709+
res.success(object);
710+
});
711+
});
712+
713+
Parse.Cloud.run('removeme')
714+
.then(aNoBeforeSaveObj => {
715+
expect(aNoBeforeSaveObj.get('remove')).toEqual(undefined);
716+
717+
return Parse.Cloud.run('removeme2');
718+
})
719+
.then(aBeforeSaveObj => {
720+
expect(aBeforeSaveObj.get('before')).toEqual('save');
721+
expect(aBeforeSaveObj.get('remove')).toEqual(undefined);
722+
done();
723+
});
724+
});
669725
});

0 commit comments

Comments
 (0)