import { describe, it, expect } from 'vitest'; import { validateUsername } from '../validate-username'; describe('validateUsername', () => { it('латиница', () => { expect(validateUsername('john')).toBe(true); }); it('с цифрами', () => { expect(validateUsername('user123')).toBe(true); }); it('с подчёркиванием и дефисом', () => { expect(validateUsername('my_user-name')).toBe(true); }); it('1 символ — невалиден', () => { expect(validateUsername('a')).toBe(false); }); it('21 символ — невалиден', () => { expect(validateUsername('a'.repeat(21))).toBe(false); }); it('20 символов — валиден', () => { expect(validateUsername('a'.repeat(20))).toBe(true); }); it('пустая строка', () => { expect(validateUsername('')).toBe(false); }); it('спецсимволы', () => { expect(validateUsername('user@name')).toBe(false); }); it('undefined — не бросает, false', () => { expect(validateUsername(undefined as unknown as string)).toBe(false); }); it('null — не бросает, false', () => { expect(validateUsername(null as unknown as string)).toBe(false); }); });