Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/pages/404.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Head from "next/head";
import Link from "next/link";
import { useRouter } from "next/router";
import { Layout } from "@/components/layout";
Expand All @@ -8,6 +9,13 @@ export default function Custom404() {

return (
<Layout>
<Head>
<title>404 - Page Not Found | Betsey (bTc)</title>
<meta
name="description"
content="Page not found. The requested page does not exist in the Betsey test target application."
/>
</Head>
<div className="text-center">
<h1 className="mb-4 text-6xl font-bold text-primary">404</h1>
<h2 className="mb-4 text-2xl font-semibold">Page Not Found</h2>
Expand Down
8 changes: 8 additions & 0 deletions src/pages/_error.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { NextPageContext } from "next";
import Head from "next/head";
import Link from "next/link";
import { Layout } from "@/components/layout";
import { Button } from "@/components/ui/button";
Expand All @@ -10,6 +11,13 @@ interface ErrorProps {
function Error({ statusCode }: ErrorProps) {
return (
<Layout>
<Head>
<title>{statusCode} Error | Betsey (bTc)</title>
<meta
name="description"
content={`Error ${statusCode}: ${statusCode === 404 ? "Page not found" : statusCode === 500 ? "Server error" : "An error occurred"} in Betsey test target application.`}
/>
</Head>
<div className="container flex min-h-[80vh] flex-col items-center justify-center">
<div className="text-center">
<h1 className="mb-4 text-6xl font-bold text-destructive">
Expand Down
12 changes: 12 additions & 0 deletions src/pages/about.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
Brain,
Expand Down Expand Up @@ -27,6 +28,17 @@ import {
export default function About() {
return (
<Layout>
<Head>
<title>About Betsey (bTc) | ehAye™ Test Target App</title>
<meta
name="description"
content="Learn about Betsey (bTc), the comprehensive test automation target designed to train and showcase ehAye™ Engine capabilities. Built with modern web technologies."
/>
<meta
name="keywords"
content="about Betsey, bTc, test automation, ehAye Engine, web testing, automation framework"
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/checkboxes.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import { CheckSquare } from "lucide-react";
import { Layout } from "@/components/layout";
Expand Down Expand Up @@ -73,6 +74,13 @@ export default function Checkboxes() {

return (
<Layout>
<Head>
<title>Checkbox Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test checkbox components with various states, controlled and uncontrolled modes, and checkbox groups. Perfect for automation testing."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/clicks.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
CheckCircle,
Expand Down Expand Up @@ -73,6 +74,13 @@ export default function Clicks() {

return (
<Layout>
<Head>
<title>Click Event Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test various click interactions including single, double, and right clicks. Comprehensive click event testing for automation."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/dropdowns.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import { ChevronDown, Filter, Globe, RotateCcw } from "lucide-react";
import { Layout } from "@/components/layout";
Expand Down Expand Up @@ -50,6 +51,13 @@ export default function Dropdowns() {

return (
<Layout>
<Head>
<title>Dropdown & Select Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test dropdown menus, select components, command palettes, and combo boxes. Complete dropdown testing suite for automation."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/focus.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useRef, useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import { Eye, MousePointer, Target } from "lucide-react";
import { Layout } from "@/components/layout";
Expand Down Expand Up @@ -47,6 +48,13 @@ export default function Focus() {

return (
<Layout>
<Head>
<title>Focus & Blur Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test focus management, tab navigation, and focus trapping. Essential focus state testing for accessibility and automation."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/forms.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
AlertCircle,
Expand Down Expand Up @@ -147,6 +148,13 @@ export default function Forms() {

return (
<Layout>
<Head>
<title>Form Examples | Betsey (bTc) Test Target</title>
<meta
name="description"
content="Test various form implementations from simple to complex. Features input validation, form submission, and multiple form controls for comprehensive testing."
/>
</Head>
<motion.div
initial="initial"
animate="in"
Expand Down
8 changes: 8 additions & 0 deletions src/pages/hover.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import { Info, MousePointer, Navigation, Target, Zap } from "lucide-react";
import { Layout } from "@/components/layout";
Expand Down Expand Up @@ -35,6 +36,13 @@ export default function Hover() {

return (
<Layout>
<Head>
<title>Hover Effect Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test hover interactions, tooltips, and mouse tracking. Complete hover state testing for automation frameworks."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
30 changes: 30 additions & 0 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import Image from "next/image";
import Link from "next/link";
import { motion } from "framer-motion";
Expand Down Expand Up @@ -133,6 +134,35 @@ export default function Home() {

return (
<Layout>
<Head>
<title>
Betsey (bTc) - Between The Clicks | ehAye™ Test Target App
</title>
<meta
name="description"
content="Betsey (bTc) is a comprehensive test target app for AI/MCP training in browser automation and UI interaction. Built to showcase ehAye™ Engine Vision & Control capabilities."
/>
<meta
name="keywords"
content="Betsey, bTc, ehAye, test automation, browser automation, MCP, UI testing, web automation"
/>
<meta property="og:title" content="Betsey (bTc) - Between The Clicks" />
<meta
property="og:description"
content="A comprehensive test target app for AI/MCP training in browser automation and UI interaction."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://btc.eh-aye.net" />
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Betsey (bTc) - Between The Clicks"
/>
<meta
name="twitter:description"
content="Test automation playground for ehAye™ Engine Vision & Control"
/>
</Head>
{/* Lava Lamp Background */}
<div className="pointer-events-none fixed inset-0 overflow-hidden">
<div className="animate-float-1 absolute left-[15%] top-[15%] h-20 w-20 rounded-full bg-gradient-to-br from-purple-400/20 to-pink-600/20 blur-3xl md:h-32 md:w-32" />
Expand Down
8 changes: 8 additions & 0 deletions src/pages/interactive.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
AlertTriangle,
Expand Down Expand Up @@ -124,6 +125,13 @@ export default function Interactions() {

return (
<Layout>
<Head>
<title>Interactive Elements | Betsey (bTc)</title>
<meta
name="description"
content="Test dialogs, popovers, tooltips, and advanced UI interactions. Comprehensive interactive component testing suite."
/>
</Head>
<TooltipProvider>
<div className="container mx-auto px-4 py-8">
<motion.div
Expand Down
8 changes: 8 additions & 0 deletions src/pages/navigation-search.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import Link from "next/link";
import { useRouter } from "next/router";
import { motion } from "framer-motion";
Expand Down Expand Up @@ -90,6 +91,13 @@ export default function NavigationSearch() {

return (
<Layout>
<Head>
<title>Navigation & Search Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test navigation methods, search functionality, and URL handling. Complete navigation testing suite for automation."
/>
</Head>
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/radio-buttons.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
CheckCircle,
Expand Down Expand Up @@ -37,6 +38,13 @@ export default function RadioButtons() {

return (
<Layout>
<Head>
<title>Radio Button Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test radio button groups, controlled selections, and various radio button states for comprehensive UI automation testing."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/scroll.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useEffect, useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
ArrowDown,
Expand Down Expand Up @@ -70,6 +71,13 @@ export default function Scroll() {

return (
<Layout>
<Head>
<title>Scroll Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test scroll behaviors, scroll position tracking, and programmatic scrolling. Comprehensive scroll testing for automation."
/>
</Head>
<div className="container mx-auto px-4 py-8 pb-24">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/sliders.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
BarChart,
Expand Down Expand Up @@ -42,6 +43,13 @@ export default function Sliders() {

return (
<Layout>
<Head>
<title>Slider & Range Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test slider components, range inputs, and progress bars with various configurations for UI automation testing."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
8 changes: 8 additions & 0 deletions src/pages/test-error.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Head from "next/head";
import { Button } from "@/components/ui/button";
import { Layout } from "@/components/layout";

Expand All @@ -12,6 +13,13 @@ export default function TestError() {

return (
<Layout>
<Head>
<title>Error Test Page | Betsey (bTc)</title>
<meta
name="description"
content="Test error handling, error boundaries, and error states. Essential error testing for robust automation frameworks."
/>
</Head>
<div className="container py-8">
<h1 className="text-3xl font-bold mb-6">Test Error Pages</h1>
<div className="flex gap-4">
Expand Down
8 changes: 8 additions & 0 deletions src/pages/text-inputs.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from "react";
import Head from "next/head";
import { motion } from "framer-motion";
import {
AlignLeft,
Expand Down Expand Up @@ -127,6 +128,13 @@ export default function TextInputs() {

return (
<Layout>
<Head>
<title>Text Input Tests | Betsey (bTc)</title>
<meta
name="description"
content="Test various text input types including email, password, search, URL, and phone inputs. Comprehensive form input testing for automation frameworks."
/>
</Head>
<div className="container mx-auto px-4 py-8">
<motion.div
initial={{ opacity: 0, y: 20 }}
Expand Down
Loading