node-red / node-red-node-test-helper

A test framework for Node-RED nodes
Apache License 2.0
57 stars 40 forks source link

Fix: Wait for the runtime-deploy 'runtime-event' before starting flows #66

Open WS-Daniel opened 11 months ago

WS-Daniel commented 11 months ago

We found some tests were failing randomly under certain conditions, but sometimes they worked.

Upon deeper analysis I found the NodeTestHelper.load() function awaits the loadFlows() promise to be fulfilled, but loadFlows() triggers setFlows in Node-RED which returns a 'configSavePromise' but within that promise, there is a start() call that is not awaited.

In order to make sure the flow is completely deployed, we need to await for the "runtime-event" event with id "runtime-deploy", before considering loadFlows() completed and proceeding to startFlows().

The "runtime-event" id === "runtime-deploy" event exists since version 0.16 of Node-RED. The helper initial version was for 0.18.2 already, thus, I do not judge important to check if Node-RED version supports this event.

linux-foundation-easycla[bot] commented 11 months ago

CLA Signed

The committers listed above are authorized under a signed CLA.

knolleary commented 11 months ago

Thanks for this. You've caught me with one foot out the door for vacation. I'll take a proper look at this on my return, but please do ping if I haven't responded in a couple weeks.

Steve-Mcl commented 11 months ago

@WS-Daniel thanks for this. Could you please sign the CLA?

WS-Daniel commented 11 months ago

@WS-Daniel thanks for this. Could you please sign the CLA?

I am trying to move this but I am not sure I have enough strength to push a CLA Manager into the company for this small contribution.

WS-Daniel commented 5 months ago

Hi! Just ping @knolleary, the CLA is signed now :)