test(api): 处理器测试的每次请求在包结束后对照 openapi 校验状态码、响应与 2xx 请求体,SetupAllowed 纳入一致性比对,补齐漏记的状态码并修正空列表回 null

This commit is contained in:
Lemon-miaow committed 2026-09-25 18:24:47 +08:00
1 parent 1054e62fa9
commit e7326e6315
11 files changed
+937 -28

No files matched your search

+198 -6
View File
@@ -2396,6 +2396,69 @@ export interface components {
};
content?: never;
};
/** @description An unexpected failure (internal); the details are in the server log under the request id. */
InternalError: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description A genuine service token for a caller this operation does not serve (wrong_caller). */
WrongCaller: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description A session of a player (not admin or owner) on the operator console host, refused before any handler (forbidden). */
StaffOnlyHost: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description The session belongs to an account still in first-run setup, which may use only the x-felis-setup-allowed operations until it has a durable sign-in (setup_required). */
SetupRequired: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description The JSON body is over 1 MiB (too_large). */
TooLarge: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description A body sent with a Content-Type other than application/json (unsupported_media_type). */
UnsupportedMediaType: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description The store this writes to is full — the backup archive (backup_store_full), the world volume (volume_full) or the upload area (uploads_full). */
InsufficientStorage: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description Malformed or invalid request (validation, bad body, unknown field). */
BadRequest: {
headers: {
@@ -2850,6 +2913,15 @@ export interface operations {
"application/json": components["schemas"]["Error"];
};
};
/** @description The node is at its running-server cap (at_capacity). */
503: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
};
internalStatus: {
@@ -3101,6 +3173,15 @@ export interface operations {
};
400: components["responses"]["BadRequest"];
401: components["responses"]["Unauthorized"];
/** @description The linked account holds a staff role and is never reclaimed (protected_admin). */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
};
checkUsernameBlacklist: {
@@ -3403,6 +3484,15 @@ export interface operations {
"application/json": components["schemas"]["Error"];
};
};
/** @description The node is at its running-server cap (at_capacity). */
503: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
};
stop: {
@@ -3559,6 +3649,15 @@ export interface operations {
};
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
/** @description Unknown server. */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description Server not running. */
409: {
headers: {
@@ -3568,6 +3667,15 @@ export interface operations {
"application/json": components["schemas"]["Error"];
};
};
/** @description This session already holds as many console streams as it may (too_many_streams). */
429: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
503: components["responses"]["ServiceUnavailable"];
};
};
@@ -4119,7 +4227,7 @@ export interface operations {
"application/json": {
user_id: string;
/** @enum {string} */
role: "user" | "admin";
role: "owner" | "admin" | "user";
};
};
};
@@ -4266,7 +4374,7 @@ export interface operations {
"application/json": {
user_id: string;
/** @enum {string} */
role: "user" | "admin";
role: "owner" | "admin" | "user";
};
};
};
@@ -4405,7 +4513,7 @@ export interface operations {
"application/json": {
user_id: string;
/** @enum {string} */
role: "user" | "admin";
role: "owner" | "admin" | "user";
};
};
};
@@ -4566,7 +4674,7 @@ export interface operations {
"application/json": {
user_id: string;
/** @enum {string} */
role: "user" | "admin";
role: "owner" | "admin" | "user";
};
};
};
@@ -4625,7 +4733,7 @@ export interface operations {
user_id: string;
username: string;
/** @enum {string} */
role: "user" | "admin";
role: "owner" | "admin" | "user";
email: string;
email_verified: boolean;
has_passkey: boolean;
@@ -4682,7 +4790,7 @@ export interface operations {
user_id: string;
username: string;
/** @enum {string} */
role: "user" | "admin";
role: "owner" | "admin" | "user";
email: string;
email_verified: boolean;
has_passkey: boolean;
@@ -4814,6 +4922,15 @@ export interface operations {
};
};
401: components["responses"]["Unauthorized"];
/** @description The account settings could not be read (auth_unavailable). */
503: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
};
myServers: {
@@ -5003,6 +5120,15 @@ export interface operations {
};
};
};
/** @description Malformed server name (bad_name) or request body. */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
/** @description No matching backup. */
@@ -5050,6 +5176,15 @@ export interface operations {
};
};
};
/** @description Malformed server name (bad_name). */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
/** @description Unknown server. */
@@ -5070,7 +5205,17 @@ export interface operations {
"application/json": components["schemas"]["Error"];
};
};
/** @description Another backup of this server started within the cooldown (backup_cooldown). */
429: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
503: components["responses"]["ServiceUnavailable"];
507: components["responses"]["InsufficientStorage"];
};
};
listServerJobs: {
@@ -5289,6 +5434,7 @@ export interface operations {
"application/json": components["schemas"]["Error"];
};
};
507: components["responses"]["InsufficientStorage"];
};
};
writeServerFile: {
@@ -5643,6 +5789,15 @@ export interface operations {
};
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
/** @description Unknown user. */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
};
setQuotas: {
@@ -5677,6 +5832,15 @@ export interface operations {
400: components["responses"]["BadRequest"];
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
/** @description Unknown user. */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
};
};
listUserSessions: {
@@ -5837,6 +6001,15 @@ export interface operations {
400: components["responses"]["BadRequest"];
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
/** @description Unknown user. */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description UUID is already linked to a different user. */
409: {
headers: {
@@ -6058,6 +6231,15 @@ export interface operations {
};
};
401: components["responses"]["Unauthorized"];
/** @description Another account already proved this address (email_taken); the code is not consumed. */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
/** @description Too many incorrect attempts on this code (otp_locked), or the account's daily wrong-code budget is spent (otp_account_locked, with Retry-After). */
429: {
headers: {
@@ -7230,6 +7412,15 @@ export interface operations {
"text/event-stream": string;
};
};
/** @description Malformed build id (bad_request). The id becomes a label-selector value, so it is refused before any lookup. */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Error"];
};
};
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
404: components["responses"]["NotFound"];
@@ -7405,6 +7596,7 @@ export interface operations {
"application/json": components["schemas"]["Submission"];
};
};
400: components["responses"]["BadRequest"];
401: components["responses"]["Unauthorized"];
403: components["responses"]["Forbidden"];
404: components["responses"]["NotFound"];