Merge pull request #14874 from Budibase/openapi-test-improvements
Public API test changes
This commit is contained in:
commit
de3ebd9e06
|
@ -831,8 +831,7 @@
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"static",
|
||||
"dynamic",
|
||||
"ai"
|
||||
"dynamic"
|
||||
],
|
||||
"description": "Defines whether this is a static or dynamic formula."
|
||||
}
|
||||
|
@ -1042,8 +1041,7 @@
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"static",
|
||||
"dynamic",
|
||||
"ai"
|
||||
"dynamic"
|
||||
],
|
||||
"description": "Defines whether this is a static or dynamic formula."
|
||||
}
|
||||
|
@ -1264,8 +1262,7 @@
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"static",
|
||||
"dynamic",
|
||||
"ai"
|
||||
"dynamic"
|
||||
],
|
||||
"description": "Defines whether this is a static or dynamic formula."
|
||||
}
|
||||
|
|
|
@ -761,7 +761,6 @@ components:
|
|||
enum:
|
||||
- static
|
||||
- dynamic
|
||||
- ai
|
||||
description: Defines whether this is a static or dynamic formula.
|
||||
- type: object
|
||||
properties:
|
||||
|
@ -931,7 +930,6 @@ components:
|
|||
enum:
|
||||
- static
|
||||
- dynamic
|
||||
- ai
|
||||
description: Defines whether this is a static or dynamic formula.
|
||||
- type: object
|
||||
properties:
|
||||
|
@ -1108,7 +1106,6 @@ components:
|
|||
enum:
|
||||
- static
|
||||
- dynamic
|
||||
- ai
|
||||
description: Defines whether this is a static or dynamic formula.
|
||||
- type: object
|
||||
properties:
|
||||
|
|
|
@ -138,7 +138,7 @@ const tableSchema = {
|
|||
},
|
||||
formulaType: {
|
||||
type: "string",
|
||||
enum: Object.values(FormulaType),
|
||||
enum: [FormulaType.STATIC, FormulaType.DYNAMIC],
|
||||
description:
|
||||
"Defines whether this is a static or dynamic formula.",
|
||||
},
|
||||
|
|
|
@ -5,22 +5,35 @@ import { Expectations } from "../../../../tests/utilities/api/base"
|
|||
|
||||
type RequestOpts = { internal?: boolean; appId?: string }
|
||||
|
||||
type PublicAPIExpectations = Omit<Expectations, "headers" | "headersNotPresent">
|
||||
export interface PublicAPIExpectations {
|
||||
status?: number
|
||||
body?: Record<string, any>
|
||||
}
|
||||
|
||||
export class PublicAPIRequest {
|
||||
private makeRequest: MakeRequestResponse | undefined
|
||||
private makeRequest: MakeRequestResponse
|
||||
private appId: string | undefined
|
||||
private _tables: PublicTableAPI | undefined
|
||||
private _rows: PublicRowAPI | undefined
|
||||
private _apiKey: string | undefined
|
||||
|
||||
async init(config: TestConfiguration, user: User, opts?: RequestOpts) {
|
||||
this._apiKey = await config.generateApiKey(user._id)
|
||||
this.makeRequest = generateMakeRequest(this.apiKey, opts)
|
||||
this.appId = opts?.appId
|
||||
this._tables = new PublicTableAPI(this)
|
||||
this._rows = new PublicRowAPI(this)
|
||||
return this
|
||||
tables: PublicTableAPI
|
||||
rows: PublicRowAPI
|
||||
apiKey: string
|
||||
|
||||
private constructor(
|
||||
apiKey: string,
|
||||
makeRequest: MakeRequestResponse,
|
||||
appId?: string
|
||||
) {
|
||||
this.apiKey = apiKey
|
||||
this.makeRequest = makeRequest
|
||||
this.appId = appId
|
||||
this.tables = new PublicTableAPI(this)
|
||||
this.rows = new PublicRowAPI(this)
|
||||
}
|
||||
|
||||
static async init(config: TestConfiguration, user: User, opts?: RequestOpts) {
|
||||
const apiKey = await config.generateApiKey(user._id)
|
||||
const makeRequest = generateMakeRequest(apiKey, opts)
|
||||
return new this(apiKey, makeRequest, opts?.appId)
|
||||
}
|
||||
|
||||
opts(opts: RequestOpts) {
|
||||
|
@ -48,27 +61,6 @@ export class PublicAPIRequest {
|
|||
}
|
||||
return res.body
|
||||
}
|
||||
|
||||
get apiKey(): string {
|
||||
if (!this._apiKey) {
|
||||
throw new Error("Init has not been called")
|
||||
}
|
||||
return this._apiKey
|
||||
}
|
||||
|
||||
get tables(): PublicTableAPI {
|
||||
if (!this._tables) {
|
||||
throw new Error("Init has not been called")
|
||||
}
|
||||
return this._tables
|
||||
}
|
||||
|
||||
get rows(): PublicRowAPI {
|
||||
if (!this._rows) {
|
||||
throw new Error("Init has not been called")
|
||||
}
|
||||
return this._rows
|
||||
}
|
||||
}
|
||||
|
||||
export class PublicTableAPI {
|
||||
|
|
|
@ -20,8 +20,8 @@ describe("check public API security", () => {
|
|||
[config.getProdAppId()]: roles.BUILTIN_ROLE_IDS.BASIC,
|
||||
},
|
||||
})
|
||||
builderRequest = await new PublicAPIRequest().init(config, builderUser)
|
||||
appUserRequest = await new PublicAPIRequest().init(config, appUser)
|
||||
builderRequest = await PublicAPIRequest.init(config, builderUser)
|
||||
appUserRequest = await PublicAPIRequest.init(config, appUser)
|
||||
table = (await builderRequest.tables.create(basicTable())).data
|
||||
})
|
||||
|
||||
|
|
|
@ -257,7 +257,7 @@ export interface components {
|
|||
* @description Defines whether this is a static or dynamic formula.
|
||||
* @enum {string}
|
||||
*/
|
||||
formulaType?: "static" | "dynamic" | "ai";
|
||||
formulaType?: "static" | "dynamic";
|
||||
}
|
||||
| {
|
||||
/**
|
||||
|
@ -369,7 +369,7 @@ export interface components {
|
|||
* @description Defines whether this is a static or dynamic formula.
|
||||
* @enum {string}
|
||||
*/
|
||||
formulaType?: "static" | "dynamic" | "ai";
|
||||
formulaType?: "static" | "dynamic";
|
||||
}
|
||||
| {
|
||||
/**
|
||||
|
@ -483,7 +483,7 @@ export interface components {
|
|||
* @description Defines whether this is a static or dynamic formula.
|
||||
* @enum {string}
|
||||
*/
|
||||
formulaType?: "static" | "dynamic" | "ai";
|
||||
formulaType?: "static" | "dynamic";
|
||||
}
|
||||
| {
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue