156 lines
3.7 KiB
JavaScript
156 lines
3.7 KiB
JavaScript
const jestOpenAPI = require("jest-openapi").default
|
|
const generateSchema = require("../../../../../specs/generate")
|
|
const setup = require("../../tests/utilities")
|
|
const { checkSlashesInUrl } = require("../../../../utilities")
|
|
|
|
const yamlPath = generateSchema()
|
|
jestOpenAPI(yamlPath)
|
|
|
|
let request = setup.getRequest()
|
|
let config = setup.getConfig()
|
|
let apiKey, table
|
|
|
|
beforeAll(async () => {
|
|
await config.init()
|
|
table = await config.updateTable()
|
|
apiKey = await config.generateApiKey()
|
|
})
|
|
|
|
afterAll(setup.afterAll)
|
|
|
|
async function makeRequest(method, endpoint, body, appId = config.getAppId()) {
|
|
const extraHeaders = {
|
|
"x-budibase-api-key": apiKey,
|
|
}
|
|
if (appId) {
|
|
extraHeaders["x-budibase-app-id"] = appId
|
|
}
|
|
const req = request
|
|
[method](checkSlashesInUrl(`/api/public/v1/${endpoint}`))
|
|
.set(config.defaultHeaders(extraHeaders))
|
|
if (body) {
|
|
req.send(body)
|
|
}
|
|
const res = await req.expect("Content-Type", /json/).expect(200)
|
|
expect(res.body).toBeDefined()
|
|
return res
|
|
}
|
|
|
|
describe("check the applications endpoints", () => {
|
|
it("should allow retrieving applications through search", async () => {
|
|
const res = await makeRequest("post", "/applications/search")
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow creating an application", async () => {
|
|
const res = await makeRequest("post", "/applications", {
|
|
name: "new App"
|
|
}, null)
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow updating an application", async () => {
|
|
const app = config.getApp()
|
|
const appId = config.getAppId()
|
|
const res = await makeRequest("put", `/applications/${appId}`, {
|
|
...app,
|
|
name: "updated app name",
|
|
}, appId)
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow retrieving an application", async () => {
|
|
const res = await makeRequest("get", `/applications/${config.getAppId()}`)
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow deleting an application", async () => {
|
|
const res = await makeRequest("delete", `/applications/${config.getAppId()}`)
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
})
|
|
|
|
describe("check the tables endpoints", () => {
|
|
it("should allow retrieving tables through search", async () => {
|
|
const res = await makeRequest("post", "/tables/search")
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow creating a table", async () => {
|
|
|
|
})
|
|
|
|
it("should allow updating a table", async () => {
|
|
|
|
})
|
|
|
|
it("should allow retrieving a table", async () => {
|
|
|
|
})
|
|
|
|
it("should allow deleting a table", async () => {
|
|
|
|
})
|
|
})
|
|
|
|
describe("check the rows endpoints", () => {
|
|
it("should allow retrieving rows through search", async () => {
|
|
const res = await makeRequest("post", `/tables/${table._id}/rows/search`, {
|
|
query: {
|
|
},
|
|
})
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow creating a row", async () => {
|
|
|
|
})
|
|
|
|
it("should allow updating a row", async () => {
|
|
|
|
})
|
|
|
|
it("should allow retrieving a row", async () => {
|
|
|
|
})
|
|
|
|
it("should allow deleting a row", async () => {
|
|
|
|
})
|
|
})
|
|
|
|
describe("check the users endpoints", () => {
|
|
it("should allow retrieving users through search", async () => {
|
|
const res = await makeRequest("post", "/users/search")
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow creating a user", async () => {
|
|
|
|
})
|
|
|
|
it("should allow updating a user", async () => {
|
|
|
|
})
|
|
|
|
it("should allow retrieving a user", async () => {
|
|
|
|
})
|
|
|
|
it("should allow deleting a user", async () => {
|
|
|
|
})
|
|
})
|
|
|
|
describe("check the queries endpoints", () => {
|
|
it("should allow retrieving queries through search", async () => {
|
|
const res = await makeRequest("post", "/queries/search")
|
|
expect(res).toSatisfyApiSpec()
|
|
})
|
|
|
|
it("should allow executing a query", async () => {
|
|
|
|
})
|
|
})
|
|
|