© {new Date().getFullYear()} {profile.name}
diff --git a/src/components/sections/contact/Contact.tsx b/src/components/sections/contact/Contact.tsx
new file mode 100644
index 0000000..a81ad14
--- /dev/null
+++ b/src/components/sections/contact/Contact.tsx
@@ -0,0 +1,42 @@
+import SectionHeading from "@/components/ui/SectionHeading";
+import { socialLinks } from "@/content/socials";
+import ContactForm from "./ContactForm";
+
+export default function Contact() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/src/components/sections/contact/ContactForm.tsx b/src/components/sections/contact/ContactForm.tsx
index 41d8316..c4c1ce4 100644
--- a/src/components/sections/contact/ContactForm.tsx
+++ b/src/components/sections/contact/ContactForm.tsx
@@ -2,8 +2,6 @@
import { useState, FormEvent } from "react";
import { motion } from "framer-motion";
-import SectionHeading from "@/components/ui/SectionHeading";
-import { socialLinks } from "@/content/socials";
interface FormErrors {
name?: string;
@@ -76,37 +74,6 @@ export default function ContactForm() {
}
return (
-
);
-}
\ No newline at end of file
+}
diff --git a/tests/homepage.spec.ts b/tests/homepage.spec.ts
index 2957392..2bac397 100644
--- a/tests/homepage.spec.ts
+++ b/tests/homepage.spec.ts
@@ -4,7 +4,7 @@ const heroHeading =
"I build auditable AI systems and full-stack products that ship.";
test("homepage positioning and responsive layout", async ({ page }, testInfo) => {
- const isMobile = testInfo.project.name === "mobile-edge";
+ const isMobile = testInfo.project.use.isMobile === true;
await page.goto("/");
@@ -22,11 +22,24 @@ test("homepage positioning and responsive layout", async ({ page }, testInfo) =>
await page.screenshot({ path: testInfo.outputPath("hero.png") });
if (isMobile) {
+ const header = page.locator("header");
const menuButton = page.getByRole("button", { name: "Toggle navigation menu" });
+ const desktopLinks = page.locator("nav > div").first();
await expect(menuButton).toBeVisible();
+ await expect(menuButton).toHaveAttribute("aria-expanded", "false");
+ await expect(desktopLinks).toBeHidden();
+
await menuButton.click();
- await expect(page.getByRole("link", { name: "Projects", exact: true })).toBeVisible();
- await menuButton.click();
+ await expect(menuButton).toHaveAttribute("aria-expanded", "true");
+ for (const label of ["Projects", "About", "Skills", "Contact"]) {
+ await expect(
+ header.getByRole("link", { name: label, exact: true }).last(),
+ ).toBeVisible();
+ }
+
+ await header.getByRole("link", { name: "Projects", exact: true }).last().click();
+ await expect(page).toHaveURL(/#projects$/);
+ await expect(menuButton).toHaveAttribute("aria-expanded", "false");
}
const projectsHeading = page.getByRole("heading", {