fix(dash): resolve test regressions, await promises, and improve TypeScript strictness

This commit is contained in:
syntaxbullet
2026-01-08 21:12:41 +01:00
parent 8253de9f73
commit 3f3a6c88e8
4 changed files with 78 additions and 31 deletions

View File

@@ -151,8 +151,17 @@ export async function createWebServer(config: WebServerConfig = {}): Promise<Web
},
async message(ws, message) {
try {
const messageStr = message.toString();
// Defense-in-depth: redundant length check before parsing
if (messageStr.length > MAX_PAYLOAD_BYTES) {
console.error("❌ [WS] Payload exceeded maximum limit");
return;
}
const rawData = JSON.parse(messageStr);
const { WsMessageSchema } = await import("@shared/modules/dashboard/dashboard.types");
const parsed = WsMessageSchema.safeParse(JSON.parse(message.toString()));
const parsed = WsMessageSchema.safeParse(rawData);
if (!parsed.success) {
console.error("❌ [WS] Invalid message format:", parsed.error.issues);
@@ -163,7 +172,7 @@ export async function createWebServer(config: WebServerConfig = {}): Promise<Web
ws.send(JSON.stringify({ type: "PONG" }));
}
} catch (e) {
console.error("❌ [WS] Failed to parse message:", e);
console.error("❌ [WS] Failed to handle message:", e instanceof Error ? e.message : "Malformed JSON");
}
},
close(ws) {