Add extra tests

This commit is contained in:
Adria Navarro 2024-07-11 10:13:28 +02:00
parent 7dbfcc398e
commit 0831b7cf3f
1 changed files with 35 additions and 10 deletions

View File

@ -1,20 +1,23 @@
import _ from "lodash" import _ from "lodash"
import tk from "timekeeper" import tk from "timekeeper"
import { CreateRowActionRequest, Table } from "@budibase/types" import { CreateRowActionRequest } from "@budibase/types"
import * as setup from "./utilities" import * as setup from "./utilities"
import { generator } from "@budibase/backend-core/tests" import { generator } from "@budibase/backend-core/tests"
describe("/rowsActions", () => { describe("/rowsActions", () => {
const config = setup.getConfig() const config = setup.getConfig()
let table: Table let tableId: string
beforeAll(async () => { beforeAll(async () => {
tk.freeze(new Date()) tk.freeze(new Date())
await config.init() await config.init()
})
table = await config.api.table.save(setup.structures.basicTable()) beforeEach(async () => {
const table = await config.api.table.save(setup.structures.basicTable())
tableId = table._id!
}) })
afterAll(setup.afterAll) afterAll(setup.afterAll)
@ -28,7 +31,7 @@ describe("/rowsActions", () => {
function unauthorisedTests() { function unauthorisedTests() {
it("returns unauthorised (401) for unauthenticated requests", async () => { it("returns unauthorised (401) for unauthenticated requests", async () => {
await config.api.rowAction.save( await config.api.rowAction.save(
table._id!, tableId,
createRowActionRequest(), createRowActionRequest(),
{ {
status: 401, status: 401,
@ -65,18 +68,41 @@ describe("/rowsActions", () => {
describe("create", () => { describe("create", () => {
unauthorisedTests() unauthorisedTests()
it("accepts creating new row actions for", async () => { it("creates new row actions for tables without existing actions", async () => {
const rowAction = createRowActionRequest() const rowAction = createRowActionRequest()
const res = await config.api.rowAction.save(table._id!, rowAction, { const res = await config.api.rowAction.save(tableId, rowAction, {
status: 201, status: 201,
}) })
expect(res).toEqual({ expect(res).toEqual({
_id: `${table._id}_row_actions`, _id: `${tableId}_row_actions`,
_rev: expect.stringMatching(/^1-\w+/), _rev: expect.stringMatching(/^1-\w+/),
actions: [{ name: rowAction.name }], actions: [{ name: rowAction.name }],
tableId: table._id, tableId: tableId,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
})
})
it("can create multiple row actions for the same tables", async () => {
const rowActions = generator.unique(() => createRowActionRequest(), 3)
await config.api.rowAction.save(tableId, rowActions[0], {
status: 201,
})
await config.api.rowAction.save(tableId, rowActions[1], {
status: 201,
})
const res = await config.api.rowAction.save(tableId, rowActions[2], {
status: 201,
})
expect(res).toEqual({
_id: `${tableId}_row_actions`,
_rev: expect.stringMatching(/^3-\w+/),
actions: rowActions,
tableId: tableId,
createdAt: new Date().toISOString(), createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
}) })
@ -87,7 +113,7 @@ describe("/rowsActions", () => {
name: "", name: "",
} }
await config.api.rowAction.save(table._id!, rowAction, { await config.api.rowAction.save(tableId, rowAction, {
status: 400, status: 400,
body: { body: {
message: 'Invalid body - "name" is not allowed to be empty', message: 'Invalid body - "name" is not allowed to be empty',
@ -100,7 +126,6 @@ describe("/rowsActions", () => {
unauthorisedTests() unauthorisedTests()
it("returns empty for tables without row actions", async () => { it("returns empty for tables without row actions", async () => {
const tableId = table._id!
const res = await config.api.rowAction.find(tableId) const res = await config.api.rowAction.find(tableId)
expect(res).toEqual({ tableId, actions: [] }) expect(res).toEqual({ tableId, actions: [] })