import { validateEmail, validateTelegram } from "./validation" describe("validateEmail", () => { it("returns null for empty string", () => { expect(validateEmail("")).toBeNull() }) it("returns null for valid email", () => { expect(validateEmail("user@example.com")).toBeNull() }) it("returns null for valid email with subdomain", () => { expect(validateEmail("user@mail.example.com")).toBeNull() }) it("returns null for valid email with plus addressing", () => { expect(validateEmail("user+tag@example.com")).toBeNull() }) it("returns error for email without @", () => { expect(validateEmail("userexample.com")).toBe( "Please enter a valid email address", ) }) it("returns error for email without domain", () => { expect(validateEmail("user@")).toBe("Please enter a valid email address") }) it("returns error for email without TLD", () => { expect(validateEmail("user@example")).toBe( "Please enter a valid email address", ) }) it("returns error for email with spaces", () => { expect(validateEmail("user @example.com")).toBe( "Please enter a valid email address", ) }) }) describe("validateTelegram", () => { it("returns null for empty string", () => { expect(validateTelegram("")).toBeNull() }) it("returns null for valid handle without @", () => { expect(validateTelegram("username")).toBeNull() }) it("returns null for valid handle with @", () => { expect(validateTelegram("@username")).toBeNull() }) it("returns null for handle with numbers", () => { expect(validateTelegram("user123")).toBeNull() }) it("returns null for handle with underscores", () => { expect(validateTelegram("user_name")).toBeNull() }) it("returns null for exactly 5 character handle", () => { expect(validateTelegram("abcde")).toBeNull() }) it("returns error for handle shorter than 5 characters", () => { expect(validateTelegram("abcd")).toBe( "Telegram handle must be at least 5 characters", ) }) it("returns error for handle with @ that is too short", () => { expect(validateTelegram("@abcd")).toBe( "Telegram handle must be at least 5 characters", ) }) it("returns error for handle with special characters", () => { expect(validateTelegram("user-name")).toBe( "Telegram handle can only contain letters, numbers, and underscores", ) }) it("returns error for handle with spaces", () => { expect(validateTelegram("user name")).toBe( "Telegram handle can only contain letters, numbers, and underscores", ) }) it("returns error for handle with dots", () => { expect(validateTelegram("user.name")).toBe( "Telegram handle can only contain letters, numbers, and underscores", ) }) })