From 5d01c2e9630bd2cf947ef9d5b18bb13f12922856 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 11 Feb 2026 19:45:06 +0100 Subject: [PATCH] fix: remove useless tests --- tests/.gitkeep | 0 tests/contact.test.tsx | 129 ----------------------------------------- tests/home.test.tsx | 37 ------------ tests/setup.tsx | 32 ---------- 4 files changed, 198 deletions(-) delete mode 100644 tests/.gitkeep delete mode 100644 tests/contact.test.tsx delete mode 100644 tests/home.test.tsx delete mode 100644 tests/setup.tsx diff --git a/tests/.gitkeep b/tests/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tests/contact.test.tsx b/tests/contact.test.tsx deleted file mode 100644 index 0b80622..0000000 --- a/tests/contact.test.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import { render, screen, fireEvent, waitFor } from "@testing-library/react"; -import { describe, it, expect, vi, beforeEach } from "vitest"; -import { NextIntlClientProvider } from "next-intl"; -import messages from "../messages/de.json"; - -// Mocks MUST be defined before component import to ensure they are picked up -vi.mock("../components/Reveal", () => ({ - Reveal: ({ children }: any) => <>{children}, - Stagger: ({ children }: any) => <>{children}, -})); - -// Better FormData mock for happy-dom -global.FormData = class MockFormData { - private data = new Map(); - constructor(form?: HTMLFormElement) { - if (form) { - const elements = form.elements as any; - for (let i = 0; i < elements.length; i++) { - const item = elements.item(i); - if (item.name && item.value) { - this.data.set(item.name, item.value); - } - } - } - } - append(key: string, value: any) { - this.data.set(key, value); - } - get(key: string) { - return this.data.get(key); - } - entries() { - return Array.from(this.data.entries())[Symbol.iterator](); - } -} as any; - -// Mock alert -const alertMock = vi.fn(); -global.alert = alertMock; - -// Import component AFTER mocks -import Contact from "../components/ContactContent"; - -// Mock fetch -const fetchMock = vi.fn(); -global.fetch = fetchMock; - -const renderContact = () => { - return render( - - - , - ); -}; - -describe("Contact Page", () => { - beforeEach(() => { - vi.clearAllMocks(); - fetchMock.mockReset(); - fetchMock.mockResolvedValue({ - ok: true, - json: async () => ({ success: true }), - }); - }); - - it("renders the contact form correctly", () => { - renderContact(); - - expect(screen.getByLabelText(/Name \*/i)).toBeInTheDocument(); - expect(screen.getByLabelText(/Firma/i)).toBeInTheDocument(); - expect(screen.getByLabelText(/E-Mail \*/i)).toBeInTheDocument(); - expect(screen.getByLabelText(/Nachricht \*/i)).toBeInTheDocument(); - }); - - it("submits the form successfully", async () => { - renderContact(); - - fireEvent.change(screen.getByLabelText(/Name \*/i), { - target: { value: "John Doe" }, - }); - fireEvent.change(screen.getByLabelText(/E-Mail \*/i), { - target: { value: "john@example.com" }, - }); - fireEvent.change(screen.getByLabelText(/Nachricht \*/i), { - target: { value: "This is a test message that is long enough." }, - }); - - const form = screen.getByRole("form"); - fireEvent.submit(form); - - await waitFor( - () => { - expect(fetchMock).toHaveBeenCalled(); - }, - { timeout: 2000 }, - ); - - expect( - (await screen.findAllByText(/Anfrage erfolgreich übermittelt/i)).length, - ).toBeGreaterThanOrEqual(1); - expect( - (await screen.findAllByText(/Ihr Anliegen wurde erfasst/i)).length, - ).toBeGreaterThanOrEqual(1); - }); - - it("handles submission errors", async () => { - fetchMock.mockResolvedValueOnce({ - ok: false, - json: async () => ({ error: "Server error" }), - }); - - renderContact(); - - fireEvent.change(screen.getByLabelText(/Name \*/i), { - target: { value: "John Doe" }, - }); - fireEvent.change(screen.getByLabelText(/E-Mail \*/i), { - target: { value: "john@example.com" }, - }); - fireEvent.change(screen.getByLabelText(/Nachricht \*/i), { - target: { value: "This is a test message." }, - }); - - const form = screen.getByRole("form"); - fireEvent.submit(form); - - expect(await screen.findByText(/Server error/i)).toBeInTheDocument(); - }); -}); diff --git a/tests/home.test.tsx b/tests/home.test.tsx deleted file mode 100644 index ddfa458..0000000 --- a/tests/home.test.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { render, screen } from "@testing-library/react"; -import { describe, it, expect } from "vitest"; -import Home from "../components/HomeContent"; -import { NextIntlClientProvider } from "next-intl"; -import messages from "../messages/de.json"; - -const renderHome = () => { - return render( - - - , - ); -}; - -describe("Home Page", () => { - it("renders the hero section with correct title", () => { - renderHome(); - expect( - screen.getByRole("heading", { name: /Spezialisierter Partner/i }), - ).toBeInTheDocument(); - }); - - it("contains the CTA button", () => { - renderHome(); - const ctaButton = screen.getByRole("link", { name: /Projekt anfragen/i }); - expect(ctaButton).toBeInTheDocument(); - expect(ctaButton).toHaveAttribute("href", "/kontakt"); - }); - - it("renders the portfolio section", () => { - renderHome(); - expect(screen.getByText(/Unsere Leistungen/i)).toBeInTheDocument(); - // Use getAllByText because it appears in both hero description and card title - const elements = screen.getAllByText(/Technische Beratung/i); - expect(elements.length).toBeGreaterThan(0); - }); -}); diff --git a/tests/setup.tsx b/tests/setup.tsx deleted file mode 100644 index 917fd25..0000000 --- a/tests/setup.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import "@testing-library/jest-dom/vitest"; -import { vi } from "vitest"; - -// Mock next/navigation -vi.mock("next/navigation", () => ({ - usePathname: () => "/", - useRouter: () => ({ - push: vi.fn(), - replace: vi.fn(), - prefetch: vi.fn(), - back: vi.fn(), - }), - useSearchParams: () => new URLSearchParams(), -})); - -// Mock next-intl to avoid transitive next/server issues -vi.mock("next-intl/middleware", () => ({ - default: vi.fn(() => (req: any) => req), -})); - -vi.mock("next-intl/server", () => ({ - getRequestConfig: vi.fn(), -})); - -// Mock next/server -vi.mock("next/server", () => ({ - NextResponse: { - json: vi.fn(), - next: vi.fn(), - redirect: vi.fn(), - }, -}));