From ca62ba5d31efc01a5362dd574666e01e464bf857 Mon Sep 17 00:00:00 2001 From: Amr Abed <3361565+amrabed@users.noreply.github.com> Date: Mon, 6 Jul 2026 16:13:01 -0400 Subject: [PATCH 01/13] chore: remove all unused imports --- src/components/components.test.tsx | 1 - src/components/featured-section-container.test.tsx | 1 - src/components/header.test.tsx | 1 - src/components/section-item-card.tsx | 2 +- src/components/sections/hero.tsx | 2 +- src/contexts/contexts.test.tsx | 1 - src/contexts/header.tsx | 2 +- 7 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/components/components.test.tsx b/src/components/components.test.tsx index 1f7672b1..3283b04c 100644 --- a/src/components/components.test.tsx +++ b/src/components/components.test.tsx @@ -1,7 +1,6 @@ /* eslint-disable react/display-name, @typescript-eslint/no-explicit-any */ import { describe, expect, it, vi, beforeEach } from "vitest"; -import React from "react"; import { render, act } from "@testing-library/react"; diff --git a/src/components/featured-section-container.test.tsx b/src/components/featured-section-container.test.tsx index 117eb390..ef19a254 100644 --- a/src/components/featured-section-container.test.tsx +++ b/src/components/featured-section-container.test.tsx @@ -1,6 +1,5 @@ import { describe, expect, it } from "vitest"; -import React from "react"; import { render } from "@testing-library/react"; diff --git a/src/components/header.test.tsx b/src/components/header.test.tsx index 63a705b6..ec0bd4d7 100644 --- a/src/components/header.test.tsx +++ b/src/components/header.test.tsx @@ -1,6 +1,5 @@ import { describe, expect, it, vi, beforeEach } from "vitest"; -import React from "react"; import { render, act } from "@testing-library/react"; diff --git a/src/components/section-item-card.tsx b/src/components/section-item-card.tsx index 59bddf53..fc9217f0 100644 --- a/src/components/section-item-card.tsx +++ b/src/components/section-item-card.tsx @@ -2,7 +2,7 @@ import Image from "next/image"; -import React, { memo } from "react"; +import { memo } from "react"; interface SectionItemCardProps { href: string; diff --git a/src/components/sections/hero.tsx b/src/components/sections/hero.tsx index a8e5aa8a..01e1a763 100644 --- a/src/components/sections/hero.tsx +++ b/src/components/sections/hero.tsx @@ -2,7 +2,7 @@ import Image from "next/image"; -import React, { useEffect, useRef, useState, memo } from "react"; +import { useEffect, useRef, useState, memo } from "react"; import { TypeAnimation } from "react-type-animation"; const HeroSection = memo(() => { diff --git a/src/contexts/contexts.test.tsx b/src/contexts/contexts.test.tsx index dedd4ef5..95acc952 100644 --- a/src/contexts/contexts.test.tsx +++ b/src/contexts/contexts.test.tsx @@ -1,6 +1,5 @@ import { describe, expect, it, vi, beforeEach } from "vitest"; -import React from "react"; import { render, act, renderHook } from "@testing-library/react"; diff --git a/src/contexts/header.tsx b/src/contexts/header.tsx index 644c7ac3..60d68a51 100644 --- a/src/contexts/header.tsx +++ b/src/contexts/header.tsx @@ -1,6 +1,6 @@ "use client"; -import React, { +import { createContext, ReactNode, useContext, From bab37ef1ac6bc2916a45fcff9289b841c07f9085 Mon Sep 17 00:00:00 2001 From: Amr Abed <3361565+amrabed@users.noreply.github.com> Date: Mon, 6 Jul 2026 16:13:59 -0400 Subject: [PATCH 02/13] test: add missing tests for components --- src/components/banner.test.tsx | 10 +++++++ src/components/footer.test.tsx | 14 +++++++++ src/components/project.test.tsx | 13 +++++++++ src/components/publication.test.tsx | 13 +++++++++ src/components/skills.test.tsx | 18 ++++++++++++ src/components/timeline.test.tsx | 11 ++++++++ src/components/unified-filter-bar.test.tsx | 17 +++++++++++ vitest.setup.ts | 33 ++++++++++++++++++++++ 8 files changed, 129 insertions(+) create mode 100644 src/components/banner.test.tsx create mode 100644 src/components/footer.test.tsx create mode 100644 src/components/project.test.tsx create mode 100644 src/components/publication.test.tsx create mode 100644 src/components/skills.test.tsx create mode 100644 src/components/timeline.test.tsx create mode 100644 src/components/unified-filter-bar.test.tsx diff --git a/src/components/banner.test.tsx b/src/components/banner.test.tsx new file mode 100644 index 00000000..f45f0884 --- /dev/null +++ b/src/components/banner.test.tsx @@ -0,0 +1,10 @@ +import { render } from "@testing-library/react"; +import { describe, it, expect } from "vitest"; +import { Banner } from "./banner"; + +describe("Banner", () => { + it("renders correctly", () => { + const { getByText } = render(); + expect(getByText(/Free Palestine/i)).toBeInTheDocument(); + }); +}); diff --git a/src/components/footer.test.tsx b/src/components/footer.test.tsx new file mode 100644 index 00000000..9e9b22ee --- /dev/null +++ b/src/components/footer.test.tsx @@ -0,0 +1,14 @@ +import { render } from "@testing-library/react"; +import { describe, it, expect, vi } from "vitest"; +import Footer from "./footer"; + +vi.mock("@/contexts/theme", () => ({ + useTheme: () => ({ theme: "light", toggleTheme: vi.fn() }) +})); + +describe("Footer", () => { + it("renders correctly", () => { + const { getByText } = render(