Adds context object in Cloud Code hooks (#4939)

* wip

* Refactors triggers a bit

- Adds testing for hooks and context

* comment nit

* nits
This commit is contained in:
Florent Vilmart
2018-08-09 11:08:18 -04:00
parent 488b2ff231
commit 457d51a972
4 changed files with 145 additions and 42 deletions

View File

@@ -1809,4 +1809,46 @@ describe('afterFind hooks', () => {
done();
});
});
it('should expose context in before and afterSave', async () => {
let calledBefore = false;
let calledAfter = false;
Parse.Cloud.beforeSave('MyClass', (req) => {
req.context = {
key: 'value',
otherKey: 1,
}
calledBefore = true;
});
Parse.Cloud.afterSave('MyClass', (req) => {
expect(req.context.otherKey).toBe(1);
expect(req.context.key).toBe('value');
calledAfter = true;
});
const object = new Parse.Object('MyClass');
await object.save();
expect(calledBefore).toBe(true);
expect(calledAfter).toBe(true);
});
it('should expose context in before and afterSave and let keys be set individually', async () => {
let calledBefore = false;
let calledAfter = false;
Parse.Cloud.beforeSave('MyClass', (req) => {
req.context.some = 'value';
req.context.yolo = 1;
calledBefore = true;
});
Parse.Cloud.afterSave('MyClass', (req) => {
expect(req.context.yolo).toBe(1);
expect(req.context.some).toBe('value');
calledAfter = true;
});
const object = new Parse.Object('MyClass');
await object.save();
expect(calledBefore).toBe(true);
expect(calledAfter).toBe(true);
});
});