From 458f5b894b6b272fc7c8651f8b51319e3887e37e Mon Sep 17 00:00:00 2001 From: Naz Date: Tue, 16 Nov 2021 14:17:50 +0400 Subject: [PATCH] Moved Urls and Rexources reinitialization refs https://github.com/TryGhost/Toolbox/issues/127 - New instances or Urls and Resources during init were messing up test suites without an obvious solution. Moved them to only be triggered when the cache is present. - Note the e2e-frontend tests are failing if thie initialization happens every time when init is called. There seems to be some reliance on Resources being the same intsance between "softReset" which seems wrong, but wasn't able to track it down definitevely --- core/server/services/url/UrlService.js | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/core/server/services/url/UrlService.js b/core/server/services/url/UrlService.js index 35791820bc..5bbce1b8bc 100644 --- a/core/server/services/url/UrlService.js +++ b/core/server/services/url/UrlService.js @@ -38,7 +38,9 @@ class UrlService { // NOTE: Urls and Resources should not be initialized here but only in the init method. // Way too many tests fail if the initialization is removed so leaving it as is for time being this.urls = new Urls(); - this.resources = new Resources(this.queue); + this.resources = new Resources({ + queue: this.queue + }); this._listeners(); } @@ -329,19 +331,21 @@ class UrlService { persistedResources = await this.readCacheFile(this.resourcesCachePath); } - this.urls = new Urls({ - urls: persistedUrls - }); - this.resources = new Resources({ - queue: this.queue, - resources: persistedResources - }); - this.resources.initResourceConfig(); - this.resources.initEvenListeners(); - if (persistedUrls && persistedResources) { + this.urls = new Urls({ + urls: persistedUrls + }); + this.resources = new Resources({ + queue: this.queue, + resources: persistedResources + }); + this.resources.initResourceConfig(); + this.resources.initEvenListeners(); + this._onQueueEnded('init'); } else { + this.resources.initResourceConfig(); + this.resources.initEvenListeners(); await this.resources.fetchResources(); // CASE: all resources are fetched, start the queue this.queue.start({