Some fixes to Public API test request as per PR comments, as well as removing AI formula type from open API spec (this is used internally, not supposed to be exposed).

This commit is contained in:
mike12345567 2024-10-25 13:13:10 +01:00
parent 0107f2c40e
commit 99c3395cb9
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";
}
| {
/**