diff --git a/src/App.tsx b/src/App.tsx
index 7923c4c..00aa157 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -3,18 +3,10 @@ import { Toaster as Sonner } from "@/components/ui/sonner";
import { TooltipProvider } from "@/components/ui/tooltip";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { useEffect } from "react";
-import { BrowserRouter, Routes, Route, useLocation } from "react-router-dom";
+import { BrowserRouter, useLocation } from "react-router-dom";
import { ThemeProvider } from "@/components/ThemeProvider";
import { AnalyticsProvider } from "@/components/AnalyticsProvider";
-import Index from "./pages/Index";
-import ContactPage from "./pages/Contact";
-import AGBPage from "./pages/AGB";
-import ImpressumPage from "./pages/Impressum";
-import AboutPage from "./pages/About";
-import WartungsAboPage from "./pages/WartungsAbo";
-import HostingAboPage from "./pages/HostingAbo";
-import DatenschutzPage from "./pages/Datenschutz";
-import NotFound from "./pages/NotFound";
+import { AppRoutes } from "./routes";
const queryClient = new QueryClient();
@@ -36,18 +28,7 @@ const App = () => (
-
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
- } />
-
+
diff --git a/src/routes.tsx b/src/routes.tsx
new file mode 100644
index 0000000..38ec62e
--- /dev/null
+++ b/src/routes.tsx
@@ -0,0 +1,26 @@
+import { Routes, Route } from "react-router-dom";
+import Index from "./pages/Index";
+import ContactPage from "./pages/Contact";
+import AGBPage from "./pages/AGB";
+import ImpressumPage from "./pages/Impressum";
+import AboutPage from "./pages/About";
+import WartungsAboPage from "./pages/WartungsAbo";
+import HostingAboPage from "./pages/HostingAbo";
+import DatenschutzPage from "./pages/Datenschutz";
+import NotFound from "./pages/NotFound";
+
+/** Alle Seiten der Website; App.tsx rendert sie im BrowserRouter, die Tests im MemoryRouter. */
+export const AppRoutes = () => (
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
+ } />
+
+);
diff --git a/src/test/setup.ts b/src/test/setup.ts
index fa2d096..85fca3d 100644
--- a/src/test/setup.ts
+++ b/src/test/setup.ts
@@ -13,3 +13,18 @@ Object.defineProperty(window, "matchMedia", {
dispatchEvent: () => {},
}),
});
+
+// jsdom kennt diese Browser-APIs nicht; Komponenten wie BorderGlow brauchen sie.
+class BeobachterAttrappe {
+ observe() {}
+ unobserve() {}
+ disconnect() {}
+ takeRecords() {
+ return [];
+ }
+}
+for (const name of ["IntersectionObserver", "ResizeObserver"]) {
+ if (!(name in window)) {
+ Object.defineProperty(window, name, { writable: true, configurable: true, value: BeobachterAttrappe });
+ }
+}