1
0
Fork 0
mirror of synced 2024-07-09 00:06:05 +12:00
budibase/packages/server/src/api/routes/tests/datasource.spec.js

115 lines
2.7 KiB
JavaScript
Raw Normal View History

2021-01-15 09:51:03 +13:00
const {
supertest,
2021-03-04 23:05:50 +13:00
} = require("./utilities")
let TestConfig = require("./utilities/TestConfiguration")
let { basicDatasource } = require("./utilities/structures")
let { checkBuilderEndpoint } = require("./utilities/TestFunctions")
2021-01-15 09:51:03 +13:00
describe("/datasources", () => {
let request
let server
2021-03-04 23:05:50 +13:00
let config
2021-01-15 09:51:03 +13:00
beforeAll(async () => {
({ request, server } = await supertest())
2021-03-04 23:05:50 +13:00
config = new TestConfig(request)
2021-01-15 09:51:03 +13:00
});
afterAll(() => {
server.close()
})
beforeEach(async () => {
await config.init()
2021-01-15 09:51:03 +13:00
});
describe("create", () => {
it("should create a new datasource", async () => {
const res = await request
.post(`/api/datasources`)
2021-03-04 23:05:50 +13:00
.send(basicDatasource())
.set(config.defaultHeaders())
2021-01-15 09:51:03 +13:00
.expect('Content-Type', /json/)
.expect(200)
expect(res.res.statusMessage).toEqual("Datasource saved successfully.");
expect(res.body.name).toEqual("Test");
})
});
describe("fetch", () => {
let datasource
beforeEach(async () => {
2021-03-04 23:05:50 +13:00
datasource = await config.createDatasource()
2021-01-15 09:51:03 +13:00
});
afterEach(() => {
delete datasource._rev
});
it("returns all the datasources from the server", async () => {
const res = await request
.get(`/api/datasources`)
.set(config.defaultHeaders())
2021-01-15 09:51:03 +13:00
.expect('Content-Type', /json/)
.expect(200)
2021-03-04 23:05:50 +13:00
const datasources = res.body
2021-01-15 09:51:03 +13:00
expect(datasources).toEqual([
{
2021-03-04 23:05:50 +13:00
"_id": datasources[0]._id,
2021-01-15 09:51:03 +13:00
"_rev": datasources[0]._rev,
2021-03-04 23:05:50 +13:00
...basicDatasource()
2021-01-15 09:51:03 +13:00
}
]);
})
it("should apply authorization to endpoint", async () => {
2021-03-04 23:05:50 +13:00
await checkBuilderEndpoint({
config,
2021-01-15 09:51:03 +13:00
method: "GET",
url: `/api/datasources`,
})
})
});
describe("destroy", () => {
2021-03-04 23:05:50 +13:00
let datasource
2021-01-15 09:51:03 +13:00
beforeEach(async () => {
2021-03-04 23:05:50 +13:00
datasource = await config.createDatasource()
2021-01-15 09:51:03 +13:00
});
afterEach(() => {
delete datasource._rev
});
it("deletes queries for the datasource after deletion and returns a success message", async () => {
2021-03-04 23:05:50 +13:00
await config.createQuery()
2021-01-15 09:51:03 +13:00
await request
2021-03-04 23:05:50 +13:00
.delete(`/api/datasources/${datasource._id}/${datasource._rev}`)
.set(config.defaultHeaders())
2021-01-15 09:51:03 +13:00
.expect(200)
const res = await request
.get(`/api/datasources`)
.set(config.defaultHeaders())
2021-01-15 09:51:03 +13:00
.expect('Content-Type', /json/)
.expect(200)
expect(res.body).toEqual([])
})
it("should apply authorization to endpoint", async () => {
2021-03-04 23:05:50 +13:00
await checkBuilderEndpoint({
config,
2021-01-15 09:51:03 +13:00
method: "DELETE",
url: `/api/datasources/${datasource._id}/${datasource._rev}`,
})
})
});
});