Skip to content

Commit b908f95

Browse files
committed
test: try to stab
1 parent 54b9fef commit b908f95

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

spec/CloudCodeLogger.spec.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe('Cloud Code Logger', () => {
2525
})
2626
.then(() => {
2727
return Parse.User.signUp('tester', 'abc')
28-
.catch(() => {})
28+
.catch(() => { })
2929
.then(loggedInUser => (user = loggedInUser))
3030
.then(() => Parse.User.logIn(user.get('username'), 'abc'));
3131
})
@@ -139,7 +139,7 @@ describe('Cloud Code Logger', () => {
139139
});
140140

141141
it_id('9857e15d-bb18-478d-8a67-fdaad3e89565')(it)('should log an afterSave', done => {
142-
Parse.Cloud.afterSave('MyObject', () => {});
142+
Parse.Cloud.afterSave('MyObject', () => { });
143143
new Parse.Object('MyObject')
144144
.save()
145145
.then(() => {
@@ -383,22 +383,39 @@ describe('Cloud Code Logger', () => {
383383
triggerBeforeError: 'silent',
384384
},
385385
});
386+
387+
let afterSaveCompleted;
388+
const afterSavePromise = new Promise(resolve => {
389+
afterSaveCompleted = resolve;
390+
});
391+
386392
Parse.Cloud.beforeSave('TestClassError', () => {
387393
throw new Error('Failed');
388394
});
389-
Parse.Cloud.beforeSave('TestClass', () => {});
390-
Parse.Cloud.afterSave('TestClass', () => {});
395+
Parse.Cloud.beforeSave('TestClass', () => { });
396+
Parse.Cloud.afterSave('TestClass', async () => {
397+
try {
398+
// Ensure afterSave completes without errors
399+
afterSaveCompleted();
400+
} catch (e) {
401+
// Prevent unhandled rejections
402+
afterSaveCompleted();
403+
}
404+
});
391405

392406
spy = spyOn(Config.get('test').loggerController.adapter, 'log').and.callThrough();
393407

394408
const obj = new Parse.Object('TestClass');
395409
await obj.save();
396-
// Wait for afterSave to complete
410+
// Wait for afterSave to actually complete
411+
await afterSavePromise;
397412
await new Promise(resolve => setTimeout(resolve, 100));
398413
expect(spy).toHaveBeenCalledTimes(0);
399414

400415
const objError = new Parse.Object('TestClassError');
401416
await expectAsync(objError.save()).toBeRejected();
417+
// Wait for any async error handling to complete
418+
await new Promise(resolve => setTimeout(resolve, 100));
402419
// Not "beforeSave failed for TestClassError for user ..."
403420
expect(spy).toHaveBeenCalledTimes(1);
404421
});

0 commit comments

Comments
 (0)