From 15635c39e2af54052633ea4ece99c6c577c695f0 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Thu, 16 Apr 2026 20:12:42 +0200 Subject: [PATCH] Fix postRequestWithEmptyBodyTemplateUsesMessageData missing executor mock The test verifies ctx.transformMsg(...), which exercises the response- processing path. Without DirectListeningExecutor, the Reactor scheduler is unavailable and the node calls ctx.tellFailure() instead. --- .../org/thingsboard/rule/engine/rest/TbRestApiCallNodeTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbRestApiCallNodeTest.java b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbRestApiCallNodeTest.java index 2ce6bafbee..f2cd33a172 100644 --- a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbRestApiCallNodeTest.java +++ b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbRestApiCallNodeTest.java @@ -556,6 +556,8 @@ public class TbRestApiCallNodeTest extends AbstractRuleNodeUpgradeTest { final AtomicReference capturedBody = new AtomicReference<>(); setupServerWithBodyCapture(capturedBody, latch); + given(ctx.getExternalCallExecutor()).willReturn(DirectListeningExecutor.INSTANCE); + TbRestApiCallNodeConfiguration config = new TbRestApiCallNodeConfiguration().defaultConfiguration(); config.setRequestMethod("POST"); // requestBodyTemplate is null by default — should use msg.getData()