import { describe, expect, it } from 'vitest'; import { passwordSchema, signupInputSchema, usernameSchema } from './auth'; describe('auth schemas', () => { it('accepts sensible usernames and rejects unsafe ones', () => { expect(usernameSchema.safeParse('stefan-w').success).toBe(true); expect(usernameSchema.safeParse('ab').success).toBe(false); expect(usernameSchema.safeParse('-leading').success).toBe(false); expect(usernameSchema.safeParse('has space').success).toBe(false); }); it('enforces password length and the common-password blocklist', () => { expect(passwordSchema.safeParse('korrekt pferd batterie').success).toBe(true); expect(passwordSchema.safeParse('short').success).toBe(false); expect(passwordSchema.safeParse('Password123').success).toBe(false); }); it('parses a complete signup payload with locale default', () => { const parsed = signupInputSchema.parse({ username: 'uma', email: 'uma@example.org', displayName: 'Uma', password: 'ein sehr gutes passwort', }); expect(parsed.locale).toBe('en'); }); });