Fix bug with branches when no conditions are set.
This commit is contained in:
parent
3517f8cbc1
commit
9c0d7c0278
|
@ -1,5 +1,10 @@
|
||||||
import * as automation from "../index"
|
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 { createAutomationBuilder } from "./utilities/AutomationTestBuilder"
|
||||||
import TestConfiguration from "../../tests/utilities/TestConfiguration"
|
import TestConfiguration from "../../tests/utilities/TestConfiguration"
|
||||||
|
|
||||||
|
@ -280,4 +285,23 @@ describe("Branching automations", () => {
|
||||||
|
|
||||||
expect(results.steps[2].outputs.message).toContain("Special user")
|
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
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -367,6 +367,8 @@ class Orchestrator {
|
||||||
if (e.errno === "ETIME") {
|
if (e.errno === "ETIME") {
|
||||||
span?.addTags({ timedOut: true })
|
span?.addTags({ timedOut: true })
|
||||||
console.warn(`Automation execution timed out after ${timeout}ms`)
|
console.warn(`Automation execution timed out after ${timeout}ms`)
|
||||||
|
} else {
|
||||||
|
throw e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { Row, DocumentType, Table, Datasource } from "../documents"
|
||||||
import { SortOrder, SortType } from "../api"
|
import { SortOrder, SortType } from "../api"
|
||||||
import { Knex } from "knex"
|
import { Knex } from "knex"
|
||||||
import { Aggregation } from "./row"
|
import { Aggregation } from "./row"
|
||||||
|
import _ from "lodash"
|
||||||
|
|
||||||
export enum BasicOperator {
|
export enum BasicOperator {
|
||||||
EQUAL = "equal",
|
EQUAL = "equal",
|
||||||
|
@ -83,7 +84,7 @@ type RangeFilter = Record<
|
||||||
type LogicalFilter = { conditions: SearchFilters[] }
|
type LogicalFilter = { conditions: SearchFilters[] }
|
||||||
|
|
||||||
export function isLogicalFilter(filter: any): filter is LogicalFilter {
|
export function isLogicalFilter(filter: any): filter is LogicalFilter {
|
||||||
return "conditions" in filter
|
return _.isPlainObject(filter) && "conditions" in filter
|
||||||
}
|
}
|
||||||
|
|
||||||
export type AnySearchFilter = BasicFilter | ArrayFilter | RangeFilter
|
export type AnySearchFilter = BasicFilter | ArrayFilter | RangeFilter
|
||||||
|
|
Loading…
Reference in New Issue