From cc6040ed9c4bf79c4e9b62448e13f92a52aa7184 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 28 Mar 2018 16:12:27 +0200 Subject: [PATCH] prevent to load logged user data twice --- frontend-js/src/main/js/ServerConnector.js | 3 ++- frontend-js/src/test/js/ServerConnector-test.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index fb12da4020..698bd803ef 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -971,7 +971,7 @@ ServerConnector.getLoggedUser = function () { if (self._loggedUser !== undefined) { return Promise.resolve(self._loggedUser); } else { - return self.getUser(self.getSessionData().getLogin()).then(function (user) { + self._loggedUser = self.getUser(self.getSessionData().getLogin()).then(function (user) { if (user !== null) { self._loggedUser = user; return self._loggedUser; @@ -979,6 +979,7 @@ ServerConnector.getLoggedUser = function () { return Promise.reject(new Error("User " + self.getSessionData().getLogin() + " doesn't exist")); } }); + return self._loggedUser; } }; diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js index cc30334eec..8b8ed6a47f 100644 --- a/frontend-js/src/test/js/ServerConnector-test.js +++ b/frontend-js/src/test/js/ServerConnector-test.js @@ -402,5 +402,22 @@ describe('ServerConnector', function () { }); }); + it('getLoggedUser called twice', function () { + var called = 0; + var orginalFunction = ServerConnector.getUser; + ServerConnector.getUser = function (login) { + called++; + return Promise.delay(20, orginalFunction.call(ServerConnector, login)); + }; + + var promises = [ServerConnector.getLoggedUser(), ServerConnector.getLoggedUser()]; + return Promise.all(promises).then(function (result) { + assert.ok(result[0] === result[1]); + assert.equal(1, called); + }).finally(function () { + ServerConnector.getUser = orginalFunction; + }); + }); + }); -- GitLab