import { describe, expect, it } from 'vitest'; import { LoginRequest, UserPublic } from './auth.js'; describe('LoginRequest', () => { it('accepts valid credentials', () => { expect(LoginRequest.safeParse({ username: 'u', password: 'p' }).success).toBe(true); }); it('rejects empty username or password', () => { expect(LoginRequest.safeParse({ username: '', password: 'p' }).success).toBe(false); expect(LoginRequest.safeParse({ username: 'u', password: '' }).success).toBe(false); }); it('caps username at 64 and password at 256', () => { expect( LoginRequest.safeParse({ username: 'a'.repeat(65), password: 'p' }).success, ).toBe(false); expect( LoginRequest.safeParse({ username: 'u', password: 'a'.repeat(257) }).success, ).toBe(false); }); }); describe('UserPublic', () => { it('accepts an ISO string createdAt', () => { const r = UserPublic.safeParse({ id: '11111111-1111-4111-8111-111111111111', username: 'u', email: 'u@x.dev', role: 'ADMIN', createdAt: new Date().toISOString(), }); expect(r.success).toBe(true); }); it('rejects invalid role', () => { expect( UserPublic.safeParse({ id: '11111111-1111-4111-8111-111111111111', username: 'u', email: 'u@x.dev', role: 'SUPER_ADMIN', createdAt: new Date().toISOString(), }).success, ).toBe(false); }); });