From 4960bdd6feaf542f8b69c428f610c4a2414beb97 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 27 Aug 2020 11:47:50 +0100 Subject: [PATCH] [misc] re-level log: 404 from web -> WARN and emit 'project not found' A stale browser tab tried to join a deleted project. Emitting 'project not found'/'ProjectNotFound' will trigger a page reload in the frontend, upon web can render a 404. See frontend: ConnectionManager.joinProject callback --- services/real-time/app/js/WebApiManager.js | 2 ++ services/real-time/test/acceptance/js/JoinProjectTests.js | 2 +- services/real-time/test/unit/js/WebApiManagerTests.js | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/services/real-time/app/js/WebApiManager.js b/services/real-time/app/js/WebApiManager.js index bf399eff98..cdcbc0955f 100644 --- a/services/real-time/app/js/WebApiManager.js +++ b/services/real-time/app/js/WebApiManager.js @@ -59,6 +59,8 @@ module.exports = { ) } else if (response.statusCode === 403) { callback(new NotAuthorizedError()) + } else if (response.statusCode === 404) { + callback(new CodedError('project not found', 'ProjectNotFound')) } else { callback(new WebApiRequestFailedError(response.statusCode)) } diff --git a/services/real-time/test/acceptance/js/JoinProjectTests.js b/services/real-time/test/acceptance/js/JoinProjectTests.js index 9e554c6d1c..508e2b6614 100644 --- a/services/real-time/test/acceptance/js/JoinProjectTests.js +++ b/services/real-time/test/acceptance/js/JoinProjectTests.js @@ -282,7 +282,7 @@ describe('joinProject', function () { }) it('should return an error', function () { - this.error.message.should.equal('Something went wrong in real-time service') + this.error.code.should.equal('ProjectNotFound') }) it('should not have joined the project room', function (done) { diff --git a/services/real-time/test/unit/js/WebApiManagerTests.js b/services/real-time/test/unit/js/WebApiManagerTests.js index 4d5834495f..a366a2e75d 100644 --- a/services/real-time/test/unit/js/WebApiManagerTests.js +++ b/services/real-time/test/unit/js/WebApiManagerTests.js @@ -130,8 +130,8 @@ describe('WebApiManager', function () { this.callback .calledWith( sinon.match({ - message: 'non-success status code from web', - info: { statusCode: 404 } + message: 'project not found', + info: { code: 'ProjectNotFound' } }) ) .should.equal(true)