From 406c60c9737248b626a4d6863746e98d55c8e2e8 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 20 Feb 2025 09:24:49 +0000 Subject: [PATCH 1/4] Bump version to 3.4.14 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index b6eb31f2b0..79a0eac346 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "3.4.13", + "version": "3.4.14", "npmClient": "yarn", "concurrency": 20, "command": { From 4092f4c3e158d67401883d94c5c6cbd85fd1805c Mon Sep 17 00:00:00 2001 From: Sam Rose Date: Thu, 20 Feb 2025 10:11:04 +0000 Subject: [PATCH 2/4] Fix loops being given empty strings. --- .../src/automations/tests/steps/loop.spec.ts | 22 +++++++++++++++++++ packages/server/src/threads/automation.ts | 8 +++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/packages/server/src/automations/tests/steps/loop.spec.ts b/packages/server/src/automations/tests/steps/loop.spec.ts index 883732330f..19f7e5506f 100644 --- a/packages/server/src/automations/tests/steps/loop.spec.ts +++ b/packages/server/src/automations/tests/steps/loop.spec.ts @@ -7,6 +7,8 @@ import { CreateRowStepOutputs, FieldType, FilterCondition, + AutomationStatus, + AutomationStepStatus, } from "@budibase/types" import { createAutomationBuilder } from "../utilities/AutomationTestBuilder" import TestConfiguration from "../../../tests/utilities/TestConfiguration" @@ -560,5 +562,25 @@ describe("Attempt to run a basic loop automation", () => { status: "stopped", }) }) + + it("should not fail if queryRows returns nothing", async () => { + const table = await config.api.table.save(basicTable()) + const results = await createAutomationBuilder(config) + .onAppAction() + .queryRows({ + tableId: table._id!, + }) + .loop({ + option: LoopStepType.ARRAY, + binding: "{{ steps.1.rows }}", + }) + .serverLog({ text: "Message {{loop.currentItem}}" }) + .test({ fields: {} }) + + expect(results.steps[1].outputs.success).toBe(true) + expect(results.steps[1].outputs.status).toBe( + AutomationStepStatus.NO_ITERATIONS + ) + }) }) }) diff --git a/packages/server/src/threads/automation.ts b/packages/server/src/threads/automation.ts index 8b2aac662c..762da1cbc1 100644 --- a/packages/server/src/threads/automation.ts +++ b/packages/server/src/threads/automation.ts @@ -68,7 +68,11 @@ function getLoopIterable(step: LoopStep): any[] { let input = step.inputs.binding if (option === LoopStepType.ARRAY && typeof input === "string") { - input = JSON.parse(input) + if (input === "") { + input = [] + } else { + input = JSON.parse(input) + } } if (option === LoopStepType.STRING && Array.isArray(input)) { @@ -492,7 +496,7 @@ class Orchestrator { } const status = - iterations === 0 ? AutomationStatus.NO_CONDITION_MET : undefined + iterations === 0 ? AutomationStepStatus.NO_ITERATIONS : undefined return stepSuccess(stepToLoop, { status, iterations, items }) }) } From ef9cbfce5936cb26fe981b6e2a4903ae3bd9bc1d Mon Sep 17 00:00:00 2001 From: Sam Rose Date: Thu, 20 Feb 2025 10:16:13 +0000 Subject: [PATCH 3/4] Fix lint. --- packages/server/src/automations/tests/steps/loop.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/server/src/automations/tests/steps/loop.spec.ts b/packages/server/src/automations/tests/steps/loop.spec.ts index 19f7e5506f..2bdf33b253 100644 --- a/packages/server/src/automations/tests/steps/loop.spec.ts +++ b/packages/server/src/automations/tests/steps/loop.spec.ts @@ -7,7 +7,6 @@ import { CreateRowStepOutputs, FieldType, FilterCondition, - AutomationStatus, AutomationStepStatus, } from "@budibase/types" import { createAutomationBuilder } from "../utilities/AutomationTestBuilder" From 1328076d03f88d656edb1a188c24d121904297fa Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 20 Feb 2025 10:26:46 +0000 Subject: [PATCH 4/4] Bump version to 3.4.15 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 79a0eac346..91980e0a15 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "3.4.14", + "version": "3.4.15", "npmClient": "yarn", "concurrency": 20, "command": {