fix: adapt code to modernized libraries

- Migrate validation.ts from class-transformer/class-validator to Zod
- Apply Biome auto-fixes (import sorting, nodejs protocol)
- Fix duplicate type identifier in validation.ts

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
MythEclipse
2026-05-15 04:25:06 +07:00
parent 203aa9a589
commit 29fcde69e4
10 changed files with 74 additions and 49 deletions

30
tests/validation.test.ts Normal file
View File

@@ -0,0 +1,30 @@
import { expect, test } from "vitest";
import { UserStateUpdate, validateUserStateUpdate } from "../src/validation";
test("valid object returns typed object", async () => {
const input = {
userId: "123",
username: "testuser",
avatar: "avatar.png",
speaking: true,
};
const result = await validateUserStateUpdate(input);
expect(result).toEqual(input as UserStateUpdate);
});
test("non-object input returns null", async () => {
// @ts-expect-error testing invalid input
const result = await validateUserStateUpdate("not an object");
expect(result).toBeNull();
});
test("invalid field types return null", async () => {
const input = {
userId: "123",
username: "testuser",
avatar: "avatar.png",
speaking: "true", // invalid type
};
const result = await validateUserStateUpdate(input as unknown);
expect(result).toBeNull();
});