import { describe, it, expect } from 'vitest'; import { validateEmail } from '../validate-email'; describe('validateEmail', () => { it('валидный email', () => { expect(validateEmail('user@example.com')).toBe(true); }); it('с точкой в имени', () => { expect(validateEmail('first.last@example.com')).toBe(true); }); it('с поддоменом', () => { expect(validateEmail('user@mail.example.com')).toBe(true); }); it('без @', () => { expect(validateEmail('userexample.com')).toBe(false); }); it('без домена', () => { expect(validateEmail('user@')).toBe(false); }); it('пустая строка', () => { expect(validateEmail('')).toBe(false); }); it('пробелы', () => { expect(validateEmail('user @example.com')).toBe(false); }); it('верхний регистр', () => { expect(validateEmail('User@Example.COM')).toBe(true); }); it('идемпотентность (повторные вызовы дают тот же результат)', () => { expect(validateEmail('user@example.com')).toBe(true); expect(validateEmail('user@example.com')).toBe(true); expect(validateEmail('user@example.com')).toBe(true); }); it('undefined — не бросает, false', () => { expect(validateEmail(undefined as unknown as string)).toBe(false); }); });