import "../setup.ts"; import { assert, assertEquals, assertFalse } from "@std/assert"; import { isLoginUserRequest, isUpdateUserRequest, validateRegisterUserRequest, } from "../../validators/user.ts"; Deno.test("isLoginUserRequest", () => { assert(isLoginUserRequest({ username: "a", password: "b" })); assertFalse(isLoginUserRequest({ username: "a" })); assertFalse(isLoginUserRequest({ username: 1, password: "b" })); assertFalse(isLoginUserRequest(null)); }); Deno.test("validateRegisterUserRequest", () => { const ok = { username: "a_b_1", password: "12345678", email: "a@b.co", inviteToken: "t", }; assertEquals(validateRegisterUserRequest(ok), null); assertEquals( validateRegisterUserRequest({ ...ok, email: "a@b" }), "Invalid email address", ); assert( validateRegisterUserRequest({ ...ok, username: "" })?.startsWith( "Username", ), ); assert( validateRegisterUserRequest({ ...ok, username: "é" })?.startsWith( "Username", ), ); assertEquals(validateRegisterUserRequest({}), "Invalid request"); }); Deno.test("isUpdateUserRequest", () => { assert(isUpdateUserRequest({})); assert(isUpdateUserRequest({ description: null })); assert(isUpdateUserRequest({ description: "hi", email: "a@b.co" })); assertFalse(isUpdateUserRequest({ description: "x".repeat(2001) })); assertFalse(isUpdateUserRequest({ email: "nope" })); assertFalse(isUpdateUserRequest({ username: "no spaces" })); assertFalse(isUpdateUserRequest({ password: "short" })); assertFalse(isUpdateUserRequest({ role: "root" })); assertFalse(isUpdateUserRequest("string")); });