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:
parent
0107f2c40e
commit
99c3395cb9
|
@ -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