From 1b7f93f4988340d7a6575be3191a02e6c295ebd0 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Wed, 9 Mar 2022 10:40:18 +0100 Subject: [PATCH] [FIX] LocatorResourcePool: Wait for resources in prepare step (#719) Issue was introduced with #695. --- lib/lbt/resources/LocatorResourcePool.js | 2 +- test/lib/lbt/resources/LocatorResourcePool.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/lbt/resources/LocatorResourcePool.js b/lib/lbt/resources/LocatorResourcePool.js index af6994c17..8d56a36e4 100644 --- a/lib/lbt/resources/LocatorResourcePool.js +++ b/lib/lbt/resources/LocatorResourcePool.js @@ -10,7 +10,7 @@ class LocatorResourcePool extends ResourcePool { if (!moduleName) { moduleName = resource.getPath().slice("/resources/".length); } - this.addResource(new LocatorResource(this, resource, moduleName)); + return this.addResource(new LocatorResource(this, resource, moduleName)); }).filter(Boolean) ); } diff --git a/test/lib/lbt/resources/LocatorResourcePool.js b/test/lib/lbt/resources/LocatorResourcePool.js index f23e16bc4..8da25b42d 100644 --- a/test/lib/lbt/resources/LocatorResourcePool.js +++ b/test/lib/lbt/resources/LocatorResourcePool.js @@ -1,8 +1,24 @@ const test = require("ava"); const LocatorResourcePool = require("../../../../lib/lbt/resources/LocatorResourcePool"); +const Resource = require("@ui5/fs").Resource; test("getIgnoreMissingModules", async (t) => { const resourcePool = new LocatorResourcePool({ignoreMissingModules: true}); t.true(resourcePool.getIgnoreMissingModules(), "ignoreMissingModules is true"); }); +test("wait for resources to finish prepare", async (t) => { + let promiseResolved = false; + const promise = new Promise((resolve) => { + setTimeout(() => { + promiseResolved = true; + resolve(); + }, 10); + }); + const resourcePool = new LocatorResourcePool(); + resourcePool.addResource = () => promise; + return resourcePool.prepare([new Resource({path: "mypath"})]).then(() => { + t.true(promiseResolved, "addResources promise is resolved before prepare promise is resolved"); + }); +}); +