Merge pull request #15346 from Budibase/fix/automation-query-rows-table-with-spaces

Fix query rows step when querying a table containing spaces in the name
This commit is contained in:
Michael Drury 2025-01-13 13:03:52 +00:00 committed by GitHub
commit 27bfa33587
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 37 additions and 4 deletions

View File

@ -97,7 +97,7 @@ export async function run({
const ctx: any = buildCtx(appId, emitter, {
body: inputs.row,
params: {
tableId: inputs.row.tableId,
tableId: decodeURIComponent(inputs.row.tableId),
},
})
try {

View File

@ -85,7 +85,7 @@ export async function run({
_rev: inputs.revision,
},
params: {
tableId: inputs.tableId,
tableId: decodeURIComponent(inputs.tableId),
},
})

View File

@ -122,9 +122,10 @@ export async function run({
sortType =
fieldType === FieldType.NUMBER ? FieldType.NUMBER : FieldType.STRING
}
// when passing the tableId in the Ctx it needs to be decoded
const ctx = buildCtx(appId, null, {
params: {
tableId,
tableId: decodeURIComponent(tableId),
},
body: {
sortType,

View File

@ -90,6 +90,8 @@ export async function run({
}
}
const tableId = inputs.row.tableId
? decodeURIComponent(inputs.row.tableId)
: inputs.row.tableId
// Base update
let rowUpdate: Record<string, any>
@ -157,7 +159,7 @@ export async function run({
},
params: {
rowId: inputs.rowId,
tableId,
tableId: tableId,
},
})
await rowController.patch(ctx)

View File

@ -2,6 +2,7 @@ import { EmptyFilterOption, SortOrder, Table } from "@budibase/types"
import * as setup from "./utilities"
import { createAutomationBuilder } from "./utilities/AutomationTestBuilder"
import * as automation from "../index"
import { basicTable } from "../../tests/utilities/structures"
const NAME = "Test"
@ -13,6 +14,7 @@ describe("Test a query step automation", () => {
await automation.init()
await config.init()
table = await config.createTable()
const row = {
name: NAME,
description: "original description",
@ -153,4 +155,32 @@ describe("Test a query step automation", () => {
expect(result.steps[0].outputs.rows).toBeDefined()
expect(result.steps[0].outputs.rows.length).toBe(2)
})
it("return rows when querying a table with a space in the name", async () => {
const tableWithSpaces = await config.createTable({
...basicTable(),
name: "table with spaces",
})
await config.createRow({
name: NAME,
tableId: tableWithSpaces._id,
})
const result = await createAutomationBuilder({
name: "Return All Test",
config,
})
.appAction({ fields: {} })
.queryRows(
{
tableId: tableWithSpaces._id!,
onEmptyFilter: EmptyFilterOption.RETURN_ALL,
filters: {},
},
{ stepName: "Query table with spaces" }
)
.run()
expect(result.steps[0].outputs.success).toBe(true)
expect(result.steps[0].outputs.rows).toBeDefined()
expect(result.steps[0].outputs.rows.length).toBe(1)
})
})