refactor: validate user state with zod

This commit is contained in:
MythEclipse
2026-05-14 23:11:25 +07:00
parent 5010a4d1f1
commit 954faf6c5a
2 changed files with 48 additions and 29 deletions
+35
View File
@@ -0,0 +1,35 @@
import { describe, expect, it } from "vitest";
import { validateUserStateUpdate } from "../src/validation";
describe("validateUserStateUpdate", () => {
it("returns typed data for a valid user state update", async () => {
const result = await validateUserStateUpdate({
userId: "123",
username: "aseph",
avatar: "https://example.invalid/avatar.png",
speaking: true,
});
expect(result).toEqual({
userId: "123",
username: "aseph",
avatar: "https://example.invalid/avatar.png",
speaking: true,
});
});
it("returns null for non-object input", async () => {
await expect(validateUserStateUpdate("bad")).resolves.toBeNull();
});
it("returns null for invalid field types", async () => {
const result = await validateUserStateUpdate({
userId: "123",
username: "aseph",
avatar: "https://example.invalid/avatar.png",
speaking: "true",
});
expect(result).toBeNull();
});
});