Datasource usage on tests

This commit is contained in:
Adria Navarro 2023-09-27 18:32:18 +02:00
parent 8c99ac3f9b
commit 0cec026932
3 changed files with 45 additions and 23 deletions

View File

@ -73,7 +73,7 @@ export async function patch(ctx: UserCtx<PatchRowRequest, PatchRowResponse>) {
})
return {
...response,
row,
row: await outputProcessing(table, row),
table,
}
}
@ -114,7 +114,7 @@ export async function save(ctx: UserCtx) {
})
return {
...response,
row,
row: await outputProcessing(table, row),
}
} else {
return response
@ -132,7 +132,8 @@ export async function find(ctx: UserCtx): Promise<Row> {
ctx.throw(404)
}
return row
const table = await sdk.tables.getTable(tableId)
return await outputProcessing(table, row)
}
export async function destroy(ctx: UserCtx) {

View File

@ -1518,8 +1518,16 @@ describe.each([
describe("bb reference fields", () => {
let tableId: string
let users: User[]
beforeAll(async () => {
const tableConfig = generateTableConfig()
if (config.datasource) {
tableConfig.sourceId = config.datasource._id
if (config.datasource.plus) {
tableConfig.type = "external"
}
}
const table = await config.api.table.create({
...tableConfig,
schema: {
@ -1559,10 +1567,11 @@ describe.each([
expect(row).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
_id: expect.any(String),
_rev: expect.any(String),
id: isInternal ? undefined : expect.any(Number),
type: isInternal ? "row" : undefined,
})
})
@ -1579,7 +1588,6 @@ describe.each([
expect(row).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
user: [
{
@ -1592,6 +1600,8 @@ describe.each([
],
_id: expect.any(String),
_rev: expect.any(String),
id: isInternal ? undefined : expect.any(Number),
type: isInternal ? "row" : undefined,
})
})
@ -1608,7 +1618,6 @@ describe.each([
expect(row).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
users: selectedUsers.map(u => ({
_id: u._id,
@ -1619,6 +1628,8 @@ describe.each([
})),
_id: expect.any(String),
_rev: expect.any(String),
id: isInternal ? undefined : expect.any(Number),
type: isInternal ? "row" : undefined,
})
})
@ -1634,14 +1645,13 @@ describe.each([
expect(retrieved).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
user: undefined,
users: undefined,
_id: row._id,
_rev: expect.any(String),
createdAt: timestamp,
updatedAt: timestamp,
id: isInternal ? undefined : expect.any(Number),
...defaultRowFields,
})
})
@ -1661,7 +1671,6 @@ describe.each([
expect(retrieved).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
user: [user1].map(u => ({
_id: u._id,
@ -1679,8 +1688,8 @@ describe.each([
})),
_id: row._id,
_rev: expect.any(String),
createdAt: timestamp,
updatedAt: timestamp,
id: isInternal ? undefined : expect.any(Number),
...defaultRowFields,
})
})
@ -1703,7 +1712,6 @@ describe.each([
expect(updatedRow).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
user: [
{
@ -1723,6 +1731,8 @@ describe.each([
})),
_id: row._id,
_rev: expect.any(String),
id: isInternal ? undefined : expect.any(Number),
type: isInternal ? "row" : undefined,
})
})
@ -1745,12 +1755,13 @@ describe.each([
expect(updatedRow).toEqual({
name: rowData.name,
description: rowData.description,
type: "row",
tableId,
user: null,
users: null,
user: isInternal ? null : undefined,
users: isInternal ? null : undefined,
_id: row._id,
_rev: expect.any(String),
id: isInternal ? undefined : expect.any(Number),
type: isInternal ? "row" : undefined,
})
})
@ -1796,7 +1807,6 @@ describe.each([
rows.map(r => ({
name: r.name,
description: r.description,
type: "row",
tableId,
user: r.user?.map(u => ({
_id: u._id,
@ -1814,8 +1824,8 @@ describe.each([
})),
_id: expect.any(String),
_rev: expect.any(String),
createdAt: timestamp,
updatedAt: timestamp,
id: isInternal ? undefined : expect.any(Number),
...defaultRowFields,
}))
)
)
@ -1863,7 +1873,6 @@ describe.each([
rows.map(r => ({
name: r.name,
description: r.description,
type: "row",
tableId,
user: r.user?.map(u => ({
_id: u._id,
@ -1881,10 +1890,16 @@ describe.each([
})),
_id: expect.any(String),
_rev: expect.any(String),
createdAt: timestamp,
updatedAt: timestamp,
id: isInternal ? undefined : expect.any(Number),
...defaultRowFields,
}))
),
...(isInternal
? {}
: {
hasNextPage: false,
bookmark: null,
}),
})
})
})

View File

@ -17,6 +17,7 @@ import { utils } from "@budibase/shared-core"
import { ExportRowsParams, ExportRowsResult } from "../search"
import { HTTPError, db } from "@budibase/backend-core"
import pick from "lodash/pick"
import { outputProcessing } from "../../../../utilities/rowProcessor"
export async function search(options: SearchParams) {
const { tableId } = options
@ -75,6 +76,9 @@ export async function search(options: SearchParams) {
rows = rows.map((r: any) => pick(r, fields))
}
const table = await sdk.tables.getTable(tableId)
rows = await outputProcessing(table, rows)
// need wrapper object for bookmarks etc when paginating
return { rows, hasNextPage, bookmark: bookmark && bookmark + 1 }
} catch (err: any) {
@ -166,9 +170,11 @@ export async function exportRows(
}
export async function fetch(tableId: string) {
return handleRequest(Operation.READ, tableId, {
const response = await handleRequest(Operation.READ, tableId, {
includeSqlRelationships: IncludeRelationship.INCLUDE,
})
const table = await sdk.tables.getTable(tableId)
return await outputProcessing(table, response)
}
export async function fetchView(viewName: string) {