From 0c2024bf6a5186de2ff4f12ef29f37ef935d5f68 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 10 Jul 2024 13:56:41 +0200 Subject: [PATCH] Basic get --- .../src/api/controllers/rowAction/crud.ts | 27 ++++++++++++++----- .../src/api/routes/tests/rowAction.spec.ts | 20 +++++++++----- .../src/tests/utilities/api/rowAction.ts | 24 +++++++++++++++-- packages/types/src/api/web/app/rowAction.ts | 4 +++ 4 files changed, 59 insertions(+), 16 deletions(-) diff --git a/packages/server/src/api/controllers/rowAction/crud.ts b/packages/server/src/api/controllers/rowAction/crud.ts index 79a86233a8..1e6b4f4671 100644 --- a/packages/server/src/api/controllers/rowAction/crud.ts +++ b/packages/server/src/api/controllers/rowAction/crud.ts @@ -1,17 +1,30 @@ -import { CreateRowActionRequest, Ctx, RowAction } from "@budibase/types" +import { + CreateRowActionRequest, + Ctx, + RowAction, + RowActionsResponse, +} from "@budibase/types" import sdk from "../../../sdk" -export function find() { - throw new Error("Function not implemented.") -} - -export async function create(ctx: Ctx) { +async function getTable(ctx: Ctx) { const { tableId } = ctx.params - const table = await sdk.tables.getTable(tableId) if (!table) { ctx.throw(404) } + return table +} + +export async function find(ctx: Ctx) { + const table = await getTable(ctx) + + // TODO + + ctx.body = { actions: [] } +} + +export async function create(ctx: Ctx) { + const table = await getTable(ctx) // TODO diff --git a/packages/server/src/api/routes/tests/rowAction.spec.ts b/packages/server/src/api/routes/tests/rowAction.spec.ts index 46abadd397..edf6d64393 100644 --- a/packages/server/src/api/routes/tests/rowAction.spec.ts +++ b/packages/server/src/api/routes/tests/rowAction.spec.ts @@ -16,10 +16,6 @@ describe("/rowsActions", () => { afterAll(setup.afterAll) - beforeAll(async () => { - table = await config.api.table.save(setup.structures.basicTable()) - }) - function unauthorisedTests() { it("returns unauthorised (401) for unauthenticated requests", async () => { await config.api.rowAction.save( @@ -43,12 +39,16 @@ describe("/rowsActions", () => { await config.api.rowAction.save(generator.guid(), {}, { status: 403 }) }) }) + + it("rejects (404) for a non-existing table", async () => { + await config.api.rowAction.save(generator.guid(), {}, { status: 404 }) + }) } describe("create", () => { unauthorisedTests() - it("rejects when using a non-existing table", async () => { + it("accepts creating new row actions", async () => { const res = await config.api.rowAction.save( table._id!, {}, @@ -57,9 +57,15 @@ describe("/rowsActions", () => { expect(res).toEqual({}) }) + }) - it("rejects (404) for a non-existing table", async () => { - await config.api.rowAction.save(generator.guid(), {}, { status: 404 }) + describe("find", () => { + unauthorisedTests() + + it("returns empty for tables without row actions", async () => { + const res = await config.api.rowAction.find(table._id!, {}) + + expect(res).toEqual({ actions: [] }) }) }) }) diff --git a/packages/server/src/tests/utilities/api/rowAction.ts b/packages/server/src/tests/utilities/api/rowAction.ts index c6b8df5d12..7a85db21e9 100644 --- a/packages/server/src/tests/utilities/api/rowAction.ts +++ b/packages/server/src/tests/utilities/api/rowAction.ts @@ -1,4 +1,8 @@ -import { CreateRowActionRequest, Row, RowAction } from "@budibase/types" +import { + CreateRowActionRequest, + RowAction, + RowActionsResponse, +} from "@budibase/types" import { Expectations, TestAPI } from "./base" export class RowActionAPI extends TestAPI { @@ -7,11 +11,27 @@ export class RowActionAPI extends TestAPI { rowAction: CreateRowActionRequest, expectations?: Expectations, config?: { publicUser?: boolean } - ): Promise => { + ) => { return await this._post(`/api/tables/${tableId}/actions`, { body: rowAction, expectations, ...config, }) } + + find = async ( + tableId: string, + rowAction: CreateRowActionRequest, + expectations?: Expectations, + config?: { publicUser?: boolean } + ) => { + return await this._get( + `/api/tables/${tableId}/actions`, + { + body: rowAction, + expectations, + ...config, + } + ) + } } diff --git a/packages/types/src/api/web/app/rowAction.ts b/packages/types/src/api/web/app/rowAction.ts index 9a7f2a85b1..d1935a5b51 100644 --- a/packages/types/src/api/web/app/rowAction.ts +++ b/packages/types/src/api/web/app/rowAction.ts @@ -1,3 +1,7 @@ export interface CreateRowActionRequest {} export interface RowAction {} + +export interface RowActionsResponse { + actions: RowAction[] +}