diff --git a/frontend/__tests__/components/features/onboarding/form-input.test.tsx b/frontend/__tests__/components/features/onboarding/form-input.test.tsx index 19152852dd..7446a4dfdf 100644 --- a/frontend/__tests__/components/features/onboarding/form-input.test.tsx +++ b/frontend/__tests__/components/features/onboarding/form-input.test.tsx @@ -1,10 +1,7 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { describe, expect, it, vi } from "vitest"; -import { - FormInput, - isValidEmail, -} from "#/components/features/onboarding/form-input"; +import { FormInput } from "#/components/features/onboarding/form-input"; describe("FormInput", () => { const defaultProps = { @@ -195,21 +192,4 @@ describe("FormInput", () => { expect(input).not.toHaveClass("border-red-500"); }); }); - - describe("isValidEmail", () => { - it("should return true for valid emails", () => { - expect(isValidEmail("test@example.com")).toBe(true); - expect(isValidEmail("user.name@domain.org")).toBe(true); - expect(isValidEmail("user+tag@domain.co.uk")).toBe(true); - }); - - it("should return false for invalid emails", () => { - expect(isValidEmail("")).toBe(false); - expect(isValidEmail("a@b")).toBe(false); - expect(isValidEmail("invalid")).toBe(false); - expect(isValidEmail("@domain.com")).toBe(false); - expect(isValidEmail("user@")).toBe(false); - expect(isValidEmail("user@.com")).toBe(false); - }); - }); }); diff --git a/frontend/src/components/features/onboarding/form-input.tsx b/frontend/src/components/features/onboarding/form-input.tsx index 1119e05bb6..9c8953a255 100644 --- a/frontend/src/components/features/onboarding/form-input.tsx +++ b/frontend/src/components/features/onboarding/form-input.tsx @@ -1,7 +1,4 @@ -export const isValidEmail = (email: string): boolean => - /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test( - email, - ); +import { isValidEmail } from "#/utils/input-validation"; interface FormInputProps { id: string; diff --git a/frontend/src/components/features/onboarding/information-request-form.tsx b/frontend/src/components/features/onboarding/information-request-form.tsx index 22670e5fcb..8ef82b67c1 100644 --- a/frontend/src/components/features/onboarding/information-request-form.tsx +++ b/frontend/src/components/features/onboarding/information-request-form.tsx @@ -5,7 +5,8 @@ import { I18nKey } from "#/i18n/declaration"; import { useTracking } from "#/hooks/use-tracking"; import { Card } from "#/ui/card"; import { Text } from "#/ui/typography"; -import { FormInput, isValidEmail } from "./form-input"; +import { isValidEmail } from "#/utils/input-validation"; +import { FormInput } from "./form-input"; import OpenHandsLogoWhite from "#/assets/branding/openhands-logo-white.svg?react"; import CloudIcon from "#/icons/cloud-minimal.svg?react"; import StackedIcon from "#/icons/stacked.svg?react";