Skip to content

Commit ff8f854

Browse files
authored
Suppress server errors in deleteToken request (#2428)
1 parent 5a880c6 commit ff8f854

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

packages/messaging/src/controllers/base-controller.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,12 @@ export abstract class BaseController
238238
*/
239239
private async deleteTokenFromDB(token: string): Promise<void> {
240240
const tokenDetails = await this.tokenDetailsModel.deleteToken(token);
241-
await this.subscriptionManager.deleteToken(this.services, tokenDetails);
241+
try {
242+
await this.subscriptionManager.deleteToken(this.services, tokenDetails);
243+
} catch (e) {
244+
// A failed server-side delete does not need to break the app.
245+
console.error(e);
246+
}
242247
}
243248

244249
// Visible for testing

packages/messaging/test/controller-delete-token.test.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ describe('Firebase Messaging > *Controller.deleteToken()', () => {
210210
);
211211
});
212212

213-
it(`should handle error on deleteToken ${serviceClass.name}`, () => {
213+
it(`should handle error on deleteToken ${serviceClass.name}`, async () => {
214214
const fakeSubscription: any = {
215215
endpoint: EXAMPLE_TOKEN_SAVE.endpoint,
216216
unsubscribe: async () => {}
@@ -233,15 +233,11 @@ describe('Firebase Messaging > *Controller.deleteToken()', () => {
233233
throw new Error(errorMsg);
234234
});
235235

236+
const consoleStub = stub(console, 'error');
237+
236238
messagingService = new serviceClass(firebaseInternalServices);
237-
return messagingService.deleteToken(EXAMPLE_TOKEN_SAVE.fcmToken).then(
238-
() => {
239-
throw new Error('Expected this to reject');
240-
},
241-
err => {
242-
assert.equal(errorMsg, err.message);
243-
}
244-
);
239+
await messagingService.deleteToken(EXAMPLE_TOKEN_SAVE.fcmToken);
240+
assert.equal(consoleStub.callCount, 1);
245241
});
246242

247243
it(`should delete with valid unsubscribe ${serviceClass.name}`, () => {

0 commit comments

Comments
 (0)