Merge pull request #14874 from Budibase/openapi-test-improvements

Public API test changes
This commit is contained in:
Michael Drury 2024-10-25 16:10:02 +01:00 committed by GitHub
commit de3ebd9e06
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 34 additions and 48 deletions

View File

@ -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."
}

View File

@ -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:

View File

@ -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.",
},

View File

@ -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 {

View File

@ -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
})

View File

@ -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";
}
| {
/**