feat: simplify testing structure into api and e2e categories

This commit is contained in:
bipproduction
2026-02-08 11:01:55 +08:00
parent 4640b72ca6
commit 0f71798389
18 changed files with 1006 additions and 62 deletions

View File

@@ -4,6 +4,22 @@
*/
export interface paths {
"/api/health": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getApiHealth"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/session": {
parameters: {
query?: never;
@@ -84,6 +100,26 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/profile/update": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Update user profile
* @description Update the authenticated user's name or profile image
*/
post: operations["postApiProfileUpdate"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record<string, never>;
export interface components {
@@ -96,6 +132,23 @@ export interface components {
}
export type $defs = Record<string, never>;
export interface operations {
getApiHealth: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getApiSession: {
parameters: {
query?: never;
@@ -498,4 +551,96 @@ export interface operations {
};
};
};
postApiProfileUpdate: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": {
name?: string;
image?: string;
};
"multipart/form-data": {
name?: string;
image?: string;
};
"text/plain": {
name?: string;
image?: string;
};
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
user: {
id: string;
name: unknown;
email: string;
image: unknown;
role: unknown;
};
};
"multipart/form-data": {
user: {
id: string;
name: unknown;
email: string;
image: unknown;
role: unknown;
};
};
"text/plain": {
user: {
id: string;
name: unknown;
email: string;
image: unknown;
role: unknown;
};
};
};
};
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
error: string;
};
"multipart/form-data": {
error: string;
};
"text/plain": {
error: string;
};
};
};
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
error: string;
};
"multipart/form-data": {
error: string;
};
"text/plain": {
error: string;
};
};
};
};
};
}

View File

@@ -6,6 +6,14 @@
"version": "1.0.0"
},
"paths": {
"/api/health": {
"get": {
"operationId": "getApiHealth",
"responses": {
"200": {}
}
}
},
"/api/session": {
"get": {
"operationId": "getApiSession",
@@ -1168,6 +1176,243 @@
}
}
}
},
"/api/profile/update": {
"post": {
"parameters": [],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "object",
"required": [
"id",
"name",
"email",
"image",
"role"
],
"properties": {
"id": {
"type": "string"
},
"name": {},
"email": {
"type": "string"
},
"image": {},
"role": {}
}
}
},
"required": [
"user"
]
}
},
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "object",
"required": [
"id",
"name",
"email",
"image",
"role"
],
"properties": {
"id": {
"type": "string"
},
"name": {},
"email": {
"type": "string"
},
"image": {},
"role": {}
}
}
},
"required": [
"user"
]
}
},
"text/plain": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "object",
"required": [
"id",
"name",
"email",
"image",
"role"
],
"properties": {
"id": {
"type": "string"
},
"name": {},
"email": {
"type": "string"
},
"image": {},
"role": {}
}
}
},
"required": [
"user"
]
}
}
}
},
"401": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
},
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
},
"text/plain": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
}
}
},
"500": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
},
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
},
"text/plain": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
},
"required": [
"error"
]
}
}
}
}
},
"operationId": "postApiProfileUpdate",
"summary": "Update user profile",
"description": "Update the authenticated user's name or profile image",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"image": {
"type": "string"
}
}
}
},
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"image": {
"type": "string"
}
}
}
},
"text/plain": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"image": {
"type": "string"
}
}
}
}
}
}
}
}
},
"components": {