2021-03-05 13:11:44 +01:00
|
|
|
let setup = require("./utilities")
|
2021-03-11 19:29:48 +01:00
|
|
|
let { basicDatasource } = setup.structures
|
|
|
|
let { checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
2021-01-14 21:51:03 +01:00
|
|
|
|
|
|
|
describe("/datasources", () => {
|
2021-03-05 13:11:44 +01:00
|
|
|
let request = setup.getRequest()
|
|
|
|
let config = setup.getConfig()
|
2021-03-10 12:56:52 +01:00
|
|
|
let datasource
|
2021-01-14 21:51:03 +01:00
|
|
|
|
2021-03-05 13:11:44 +01:00
|
|
|
afterAll(setup.afterAll)
|
2021-01-14 21:51:03 +01:00
|
|
|
|
|
|
|
beforeEach(async () => {
|
2021-03-04 11:40:27 +01:00
|
|
|
await config.init()
|
2021-03-10 12:56:52 +01:00
|
|
|
datasource = await config.createDatasource()
|
2021-03-05 13:11:44 +01:00
|
|
|
})
|
2021-01-14 21:51:03 +01:00
|
|
|
|
|
|
|
describe("create", () => {
|
|
|
|
it("should create a new datasource", async () => {
|
|
|
|
const res = await request
|
|
|
|
.post(`/api/datasources`)
|
2021-03-04 11:05:50 +01:00
|
|
|
.send(basicDatasource())
|
2021-03-04 11:40:27 +01:00
|
|
|
.set(config.defaultHeaders())
|
2021-01-14 21:51:03 +01:00
|
|
|
.expect('Content-Type', /json/)
|
|
|
|
.expect(200)
|
|
|
|
|
2021-03-10 12:56:52 +01:00
|
|
|
expect(res.res.statusMessage).toEqual("Datasource saved successfully.")
|
|
|
|
expect(res.body.name).toEqual("Test")
|
|
|
|
})
|
|
|
|
})
|
2021-01-14 21:51:03 +01:00
|
|
|
|
|
|
|
describe("fetch", () => {
|
|
|
|
it("returns all the datasources from the server", async () => {
|
|
|
|
const res = await request
|
|
|
|
.get(`/api/datasources`)
|
2021-03-04 11:40:27 +01:00
|
|
|
.set(config.defaultHeaders())
|
2021-01-14 21:51:03 +01:00
|
|
|
.expect('Content-Type', /json/)
|
|
|
|
.expect(200)
|
|
|
|
|
2021-03-10 12:56:52 +01:00
|
|
|
const datasources = res.body
|
|
|
|
expect(datasources).toEqual([
|
|
|
|
{
|
|
|
|
"_id": datasources[0]._id,
|
|
|
|
"_rev": datasources[0]._rev,
|
|
|
|
...basicDatasource()
|
|
|
|
}
|
|
|
|
])
|
2021-01-14 21:51:03 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
it("should apply authorization to endpoint", async () => {
|
2021-03-10 12:56:52 +01:00
|
|
|
await checkBuilderEndpoint({
|
|
|
|
config,
|
|
|
|
method: "GET",
|
|
|
|
url: `/api/datasources`,
|
2021-01-14 21:51:03 +01:00
|
|
|
})
|
2021-03-10 12:56:52 +01:00
|
|
|
})
|
|
|
|
})
|
2021-01-14 21:51:03 +01:00
|
|
|
|
2021-03-10 12:56:52 +01:00
|
|
|
describe("find", () => {
|
|
|
|
it("should be able to find a datasource", async () => {
|
|
|
|
const res = await request
|
|
|
|
.get(`/api/datasources/${datasource._id}`)
|
|
|
|
.set(config.defaultHeaders())
|
|
|
|
.expect(200)
|
|
|
|
expect(res.body._rev).toBeDefined()
|
|
|
|
expect(res.body._id).toEqual(datasource._id)
|
|
|
|
})
|
|
|
|
})
|
2021-01-14 21:51:03 +01:00
|
|
|
|
2021-03-10 12:56:52 +01:00
|
|
|
describe("destroy", () => {
|
2021-01-14 21:51:03 +01:00
|
|
|
it("deletes queries for the datasource after deletion and returns a success message", async () => {
|
2021-03-04 11:05:50 +01:00
|
|
|
await config.createQuery()
|
2021-01-14 21:51:03 +01:00
|
|
|
|
|
|
|
await request
|
2021-03-04 11:05:50 +01:00
|
|
|
.delete(`/api/datasources/${datasource._id}/${datasource._rev}`)
|
2021-03-04 11:40:27 +01:00
|
|
|
.set(config.defaultHeaders())
|
2021-01-14 21:51:03 +01:00
|
|
|
.expect(200)
|
|
|
|
|
|
|
|
const res = await request
|
|
|
|
.get(`/api/datasources`)
|
2021-03-04 11:40:27 +01:00
|
|
|
.set(config.defaultHeaders())
|
2021-01-14 21:51:03 +01:00
|
|
|
.expect('Content-Type', /json/)
|
|
|
|
.expect(200)
|
2021-03-10 12:56:52 +01:00
|
|
|
|
|
|
|
expect(res.body).toEqual([])
|
2021-01-14 21:51:03 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
it("should apply authorization to endpoint", async () => {
|
2021-03-04 11:05:50 +01:00
|
|
|
await checkBuilderEndpoint({
|
|
|
|
config,
|
2021-01-14 21:51:03 +01:00
|
|
|
method: "DELETE",
|
|
|
|
url: `/api/datasources/${datasource._id}/${datasource._rev}`,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2021-03-10 12:56:52 +01:00
|
|
|
})
|
|
|
|
})
|