36 lines
983 B
TypeScript
36 lines
983 B
TypeScript
|
|
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();
|
||
|
|
});
|
||
|
|
});
|