Fix bug with branches when no conditions are set.

This commit is contained in:
Sam Rose 2025-02-24 14:47:53 +00:00
parent 3517f8cbc1
commit 9c0d7c0278
No known key found for this signature in database
3 changed files with 29 additions and 2 deletions

View File

@ -1,5 +1,10 @@
import * as automation from "../index"
import { Table, AutomationStatus } from "@budibase/types"
import {
Table,
AutomationStatus,
AutomationStepStatus,
EmptyFilterOption,
} from "@budibase/types"
import { createAutomationBuilder } from "./utilities/AutomationTestBuilder"
import TestConfiguration from "../../tests/utilities/TestConfiguration"
@ -280,4 +285,23 @@ describe("Branching automations", () => {
expect(results.steps[2].outputs.message).toContain("Special user")
})
it("should not fail with empty conditions", async () => {
const results = await createAutomationBuilder(config)
.onAppAction()
.branch({
specialBranch: {
steps: stepBuilder => stepBuilder.serverLog({ text: "Hello!" }),
condition: {
onEmptyFilter: EmptyFilterOption.RETURN_NONE,
},
},
})
.test({ fields: { test_trigger: true } })
expect(results.steps[0].outputs.success).toEqual(false)
expect(results.steps[0].outputs.status).toEqual(
AutomationStatus.NO_CONDITION_MET
)
})
})

View File

@ -367,6 +367,8 @@ class Orchestrator {
if (e.errno === "ETIME") {
span?.addTags({ timedOut: true })
console.warn(`Automation execution timed out after ${timeout}ms`)
} else {
throw e
}
}

View File

@ -3,6 +3,7 @@ import { Row, DocumentType, Table, Datasource } from "../documents"
import { SortOrder, SortType } from "../api"
import { Knex } from "knex"
import { Aggregation } from "./row"
import _ from "lodash"
export enum BasicOperator {
EQUAL = "equal",
@ -83,7 +84,7 @@ type RangeFilter = Record<
type LogicalFilter = { conditions: SearchFilters[] }
export function isLogicalFilter(filter: any): filter is LogicalFilter {
return "conditions" in filter
return _.isPlainObject(filter) && "conditions" in filter
}
export type AnySearchFilter = BasicFilter | ArrayFilter | RangeFilter