import { createSignal } from "solid-js"; import { Title, Meta } from "@solidjs/meta"; import Input from "~/components/ui/Input"; import Button from "~/components/ui/Button"; import { isValidEmail, validatePassword, passwordsMatch } from "~/lib/validation"; /** * Test page to validate Task 01 components and utilities * Navigate to /test-utils to view */ export default function TestUtilsPage() { const [email, setEmail] = createSignal(""); const [password, setPassword] = createSignal(""); const [passwordConf, setPasswordConf] = createSignal(""); const [loading, setLoading] = createSignal(false); const emailError = () => { if (!email()) return undefined; return isValidEmail(email()) ? undefined : "Invalid email format"; }; const passwordError = () => { if (!password()) return undefined; const validation = validatePassword(password()); return validation.isValid ? undefined : validation.errors.join(", "); }; const passwordMatchError = () => { if (!passwordConf()) return undefined; return passwordsMatch(password(), passwordConf()) ? undefined : "Passwords do not match"; }; const handleSubmit = async (e: Event) => { e.preventDefault(); setLoading(true); // Simulate API call await new Promise((resolve) => setTimeout(resolve, 2000)); alert(`Form submitted!\nEmail: ${email()}\nPassword: ${password()}`); setLoading(false); }; return ( <> Utility Testing | Michael Freno

Task 01 - Utility Testing

Testing shared utilities, types, and UI components

Form Components & Validation

setEmail(e.currentTarget.value)} error={emailError()} helperText="Enter a valid email address" required /> setPassword(e.currentTarget.value)} error={passwordError()} helperText="Minimum 8 characters" required /> setPasswordConf(e.currentTarget.value)} error={passwordMatchError()} required />

Validation Status

Email Valid: {isValidEmail(email()) ? "✓" : "✗"}
Password Valid:{" "} {validatePassword(password()).isValid ? "✓" : "✗"}
Passwords Match:{" "} {passwordsMatch(password(), passwordConf()) ? "✓" : "✗"}

✅ Task 01 Complete

  • ✓ User types created
  • ✓ Cookie utilities created
  • ✓ Validation helpers created
  • ✓ Input component created
  • ✓ Button component created
  • ✓ Conversion patterns documented
  • ✓ Build successful
); }