Merge pull request #4414 from mslourens/preview_rest_query

Fix validation for query preview endpoint
This commit is contained in:
Martin McKeaveney 2022-02-11 19:23:15 +01:00 committed by GitHub
commit f894fe624a
3 changed files with 20 additions and 4 deletions

View File

@ -31,8 +31,14 @@ exports.generateQueryValidation = () => {
exports.generateQueryPreviewValidation = () => {
// prettier-ignore
return joiValidator.body(Joi.object({
_id: Joi.string().optional(),
_rev: Joi.string().optional(),
readable: Joi.boolean().optional(),
fields: Joi.object().required(),
queryVerb: Joi.string().allow().required(),
name: Joi.string().required(),
flags: Joi.object().optional(),
schema: Joi.object().optional(),
extra: Joi.object().optional(),
datasourceId: Joi.string().required(),
transformer: Joi.string().optional(),

View File

@ -169,6 +169,7 @@ describe("/queries", () => {
parameters: {},
fields: {},
queryVerb: "read",
name: datasource.name,
})
.set(config.defaultHeaders())
.expect("Content-Type", /json/)
@ -261,9 +262,13 @@ describe("/queries", () => {
})
it("check that it automatically retries on fail with cached dynamics", async () => {
const { datasource, query: base } = await config.dynamicVariableDatasource()
const { datasource, query: base } =
await config.dynamicVariableDatasource()
// preview once to cache
await preview(datasource, { path: "www.google.com", queryString: "test={{ variable3 }}" })
await preview(datasource, {
path: "www.google.com",
queryString: "test={{ variable3 }}",
})
// check its in cache
const contents = await checkCacheForDynamicVariable(base._id, "variable3")
expect(contents.rows.length).toEqual(1)
@ -276,9 +281,13 @@ describe("/queries", () => {
})
it("deletes variables when linked query is deleted", async () => {
const { datasource, query: base } = await config.dynamicVariableDatasource()
const { datasource, query: base } =
await config.dynamicVariableDatasource()
// preview once to cache
await preview(datasource, { path: "www.google.com", queryString: "test={{ variable3 }}" })
await preview(datasource, {
path: "www.google.com",
queryString: "test={{ variable3 }}",
})
// check its in cache
let contents = await checkCacheForDynamicVariable(base._id, "variable3")
expect(contents.rows.length).toEqual(1)

View File

@ -393,6 +393,7 @@ class TestConfiguration {
parameters: {},
fields,
queryVerb: "read",
name: datasource.name,
})
.set(config.defaultHeaders())
.expect("Content-Type", /json/)