diff --git a/packages/server/src/api/routes/tests/query.spec.js b/packages/server/src/api/routes/tests/query.spec.js index 765baa4426..5867c863dc 100644 --- a/packages/server/src/api/routes/tests/query.spec.js +++ b/packages/server/src/api/routes/tests/query.spec.js @@ -2,14 +2,17 @@ const { checkBuilderEndpoint } = require("./utilities/TestFunctions") const { basicQuery } = require("./utilities/structures") const setup = require("./utilities") + describe("/queries", () => { let request = setup.getRequest() let config = setup.getConfig() + let datasource afterAll(setup.afterAll) beforeEach(async () => { await config.init() + datasource = await config.createDatasource() }) describe("create", () => { @@ -35,16 +38,6 @@ describe("/queries", () => { }) describe("fetch", () => { - let datasource - - beforeEach(async () => { - datasource = await config.createDatasource() - }) - - afterEach(() => { - delete datasource._rev - }) - it("returns all the queries from the server", async () => { const query = await config.createQuery() const res = await request @@ -73,17 +66,33 @@ describe("/queries", () => { }) }) + describe("find", () => { + it("should find a query in builder", async () => { + const query = await config.createQuery() + const res = await request + .get(`/api/queries/${query._id}`) + .set(config.defaultHeaders()) + .expect("Content-Type", /json/) + .expect(200) + expect(res.body._id).toEqual(query._id) + }) + + it("should find a query in cloud", async () => { + await setup.switchToCloudForFunction(async () => { + const query = await config.createQuery() + const res = await request + .get(`/api/queries/${query._id}`) + .set(await config.roleHeaders()) + .expect("Content-Type", /json/) + .expect(200) + expect(res.body.fields).toBeUndefined() + expect(res.body.parameters).toBeUndefined() + expect(res.body.schema).toBeUndefined() + }) + }) + }) + describe("destroy", () => { - let datasource - - beforeEach(async () => { - datasource = await config.createDatasource() - }) - - afterEach(() => { - delete datasource._rev - }) - it("deletes a query and returns a success message", async () => { const query = await config.createQuery() @@ -109,4 +118,12 @@ describe("/queries", () => { }) }) }) + + describe("preview", () => { + // TODO: need to mock out an integration with a test one and try this + }) + + describe("execute", () => { + // TODO: need to mock out an integration with a test one and try this + }) }) diff --git a/packages/server/src/api/routes/tests/utilities/TestConfiguration.js b/packages/server/src/api/routes/tests/utilities/TestConfiguration.js index 34b8c4fb10..f92321ddfb 100644 --- a/packages/server/src/api/routes/tests/utilities/TestConfiguration.js +++ b/packages/server/src/api/routes/tests/utilities/TestConfiguration.js @@ -85,7 +85,7 @@ class TestConfiguration { return headers } - async roleHeaders(email = EMAIL, roleId) { + async roleHeaders(email = EMAIL, roleId = BUILTIN_ROLE_IDS.ADMIN) { try { await this.createUser(email, PASSWORD, roleId) } catch (err) { diff --git a/packages/server/src/api/routes/tests/utilities/index.js b/packages/server/src/api/routes/tests/utilities/index.js index 7e9260ce18..3ad415386c 100644 --- a/packages/server/src/api/routes/tests/utilities/index.js +++ b/packages/server/src/api/routes/tests/utilities/index.js @@ -1,4 +1,5 @@ const TestConfig = require("./TestConfiguration") +const env = require("../../../../environment") exports.delay = ms => new Promise(resolve => setTimeout(resolve, ms)) @@ -30,3 +31,21 @@ exports.getConfig = () => { } return config } + +exports.switchToCloudForFunction = async func => { + // self hosted stops any attempts to Dynamo + env.CLOUD = true + env.SELF_HOSTED = true + let error + try { + await func() + } catch (err) { + error = err + } + env.CLOUD = false + env.SELF_HOSTED = false + // don't throw error until after reset + if (error) { + throw error + } +}