From a143e3663002625e54f334a908c8b8c13977b3fd Mon Sep 17 00:00:00 2001
From: Julius Härtl <jus@bitgrid.net>
Date: Thu, 23 Apr 2020 20:19:47 +0200
Subject: Make sure that the legacy jsunit tests can still inject OC.config
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Julius Härtl <jus@bitgrid.net>
---
 core/src/session-heartbeat.js | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/core/src/session-heartbeat.js b/core/src/session-heartbeat.js
index cf358bc35a1..9c9148d2c77 100644
--- a/core/src/session-heartbeat.js
+++ b/core/src/session-heartbeat.js
@@ -28,12 +28,18 @@ import { generateUrl } from './OC/routing'
 import OC from './OC'
 import { setToken as setRequestToken, getToken as getRequestToken } from './OC/requesttoken'
 
-let config
-try {
-	 config = loadState('core', 'config')
-} catch (e) {
-	// This fallback is just for our legacy jsunit tests since we have no way to mock loadState calls
-	config = OC.config
+let config = null
+/**
+ * The legacy jsunit tests overwrite OC.config before calling initCore
+ * therefore we need to wait with assigning the config fallback until initCore calls initSessionHeartBeat
+ */
+const loadConfig = () => {
+	try {
+		config = loadState('core', 'config')
+	} catch (e) {
+		// This fallback is just for our legacy jsunit tests since we have no way to mock loadState calls
+		config = OC.config
+	}
 }
 
 /**
@@ -131,6 +137,8 @@ const registerAutoLogout = () => {
  * token doesn't expire
  */
 export const initSessionHeartBeat = () => {
+	loadConfig()
+
 	registerAutoLogout()
 
 	if (!keepSessionAlive()) {
-- 
cgit v1.2.3