|
|
|
@ -1,6 +1,7 @@ |
|
|
|
const { checkBuilderEndpoint, getDB } = require("./utilities/TestFunctions") |
|
|
|
const setup = require("./utilities") |
|
|
|
const { checkBuilderEndpoint, getDB } = require("./utilities/TestFunctions") |
|
|
|
const { basicTable } = setup.structures |
|
|
|
const { events } = require("@budibase/backend-core") |
|
|
|
|
|
|
|
describe("/tables", () => { |
|
|
|
let request = setup.getRequest() |
|
|
|
@ -28,9 +29,42 @@ describe("/tables", () => { |
|
|
|
.expect(200) |
|
|
|
expect(res.res.statusMessage).toEqual("Table TestTable saved successfully.") |
|
|
|
expect(res.body.name).toEqual("TestTable") |
|
|
|
expect(events.table.created).toBeCalledTimes(1) |
|
|
|
expect(events.table.created).toBeCalledWith(res.body) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should apply authorization to endpoint", async () => { |
|
|
|
await checkBuilderEndpoint({ |
|
|
|
config, |
|
|
|
method: "POST", |
|
|
|
url: `/api/tables`, |
|
|
|
body: { |
|
|
|
name: "TestTable", |
|
|
|
key: "name", |
|
|
|
schema: { |
|
|
|
name: {type: "string"} |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
describe("update", () => { |
|
|
|
it("updates a table", async () => { |
|
|
|
const testTable = await config.createTable() |
|
|
|
|
|
|
|
const res = await request |
|
|
|
.post(`/api/tables`) |
|
|
|
.send(testTable) |
|
|
|
.set(config.defaultHeaders()) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect(200) |
|
|
|
|
|
|
|
expect(events.table.updated).toBeCalledTimes(1) |
|
|
|
expect(events.table.updated).toBeCalledWith(res.body) |
|
|
|
}) |
|
|
|
|
|
|
|
it("renames all the row fields for a table when a schema key is renamed", async () => { |
|
|
|
it("updates all the row fields for a table when a schema key is renamed", async () => { |
|
|
|
const testTable = await config.createTable() |
|
|
|
|
|
|
|
const testRow = await request |
|
|
|
@ -73,18 +107,19 @@ describe("/tables", () => { |
|
|
|
expect(res.body.name).toBeUndefined() |
|
|
|
}) |
|
|
|
|
|
|
|
it("should apply authorization to endpoint", async () => { |
|
|
|
await checkBuilderEndpoint({ |
|
|
|
config, |
|
|
|
method: "POST", |
|
|
|
url: `/api/tables`, |
|
|
|
body: { |
|
|
|
name: "TestTable", |
|
|
|
key: "name", |
|
|
|
schema: { |
|
|
|
name: {type: "string"} |
|
|
|
} |
|
|
|
} |
|
|
|
describe("user table", () => { |
|
|
|
it("should add roleId and email field when adjusting user table schema", async () => { |
|
|
|
const res = await request |
|
|
|
.post(`/api/tables`) |
|
|
|
.send({ |
|
|
|
...basicTable(), |
|
|
|
_id: "ta_users", |
|
|
|
}) |
|
|
|
.set(config.defaultHeaders()) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect(200) |
|
|
|
expect(res.body.schema.email).toBeDefined() |
|
|
|
expect(res.body.schema.roleId).toBeDefined() |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
@ -152,22 +187,6 @@ describe("/tables", () => { |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
describe("updating user table", () => { |
|
|
|
it("should add roleId and email field when adjusting user table schema", async () => { |
|
|
|
const res = await request |
|
|
|
.post(`/api/tables`) |
|
|
|
.send({ |
|
|
|
...basicTable(), |
|
|
|
_id: "ta_users", |
|
|
|
}) |
|
|
|
.set(config.defaultHeaders()) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect(200) |
|
|
|
expect(res.body.schema.email).toBeDefined() |
|
|
|
expect(res.body.schema.roleId).toBeDefined() |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
describe("validate csv", () => { |
|
|
|
it("should be able to validate a CSV layout", async () => { |
|
|
|
const res = await request |
|
|
|
@ -204,6 +223,8 @@ describe("/tables", () => { |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect(200) |
|
|
|
expect(res.body.message).toEqual(`Table ${testTable._id} deleted.`) |
|
|
|
expect(events.table.deleted).toBeCalledTimes(1) |
|
|
|
expect(events.table.deleted).toBeCalledWith(testTable) |
|
|
|
}) |
|
|
|
|
|
|
|
it("deletes linked references to the table after deletion", async () => { |
|
|
|
|