diff --git a/src/pages/AGB.tsx b/src/pages/AGB.tsx
index d4cab6e..d6bf83b 100644
--- a/src/pages/AGB.tsx
+++ b/src/pages/AGB.tsx
@@ -192,6 +192,13 @@ const AGB = () => {
- Die Vergütung ergibt sich aus dem Angebot.
+ -
+ Wird nach Aufwand abgerechnet, erfasst WEBklar die Arbeitszeit je Arbeitsschritt in Schritten von
+ 15 Minuten; angefangene 15 Minuten werden aufgerundet. Wirkt eine weitere Person unterstützend mit,
+ rechnet WEBklar für sie die Hälfte der Arbeitszeit des Arbeitsschritts an, aufgerundet auf volle
+ 15 Minuten; bei mehreren unterstützenden Personen gilt das für jede. Jeder Arbeitsschritt und jede
+ Unterstützung ist im Kundenportal einsehbar.
+
- Projektleistungen sind nach Vereinbarung fällig.
- Für die Abos gelten die Vertragsbedingungen für die WEBklar-Abos.
diff --git a/src/test/agb-verguetung.test.tsx b/src/test/agb-verguetung.test.tsx
new file mode 100644
index 0000000..ba0b5fa
--- /dev/null
+++ b/src/test/agb-verguetung.test.tsx
@@ -0,0 +1,41 @@
+import { describe, it, expect } from "vitest";
+import { render, screen, within } from "@testing-library/react";
+import { MemoryRouter } from "react-router-dom";
+import AGB from "@/pages/AGB";
+
+// Dieselben Future-Flags wie der BrowserRouter in App.tsx, sonst warnt React Router in der Testausgabe.
+const routerFuture = { v7_startTransition: true, v7_relativeSplatPath: true };
+
+/** Rendert die AGB und liefert die Absätze von § 9 in der angezeigten Reihenfolge. */
+const verguetung = () => {
+ render(
+
+
+ ,
+ );
+ const section = screen.getByRole("heading", { name: "9. Vergütung und Zahlung" }).closest("section");
+ if (!section) throw new Error("Abschnitt 9. Vergütung und Zahlung fehlt");
+ return within(section).getAllByRole("listitem");
+};
+
+describe("AGB § 9 Vergütung und Zahlung", () => {
+ it("hat vier Absätze", () => {
+ expect(verguetung()).toHaveLength(4);
+ });
+
+ it("Absatz 1 bleibt: Vergütung aus dem Angebot", () => {
+ expect(verguetung()[0]).toHaveTextContent("Die Vergütung ergibt sich aus dem Angebot.");
+ });
+
+ it("Absatz 2: 15-Minuten-Schritte und Unterstützung bei Abrechnung nach Aufwand", () => {
+ expect(verguetung()[1]).toHaveTextContent(
+ "Wird nach Aufwand abgerechnet, erfasst WEBklar die Arbeitszeit je Arbeitsschritt in Schritten von 15 Minuten; angefangene 15 Minuten werden aufgerundet. Wirkt eine weitere Person unterstützend mit, rechnet WEBklar für sie die Hälfte der Arbeitszeit des Arbeitsschritts an, aufgerundet auf volle 15 Minuten; bei mehreren unterstützenden Personen gilt das für jede. Jeder Arbeitsschritt und jede Unterstützung ist im Kundenportal einsehbar.",
+ );
+ });
+
+ it("Absatz 3 und 4: Fälligkeit und Abos wie bisher", () => {
+ const absaetze = verguetung();
+ expect(absaetze[2]).toHaveTextContent("Projektleistungen sind nach Vereinbarung fällig.");
+ expect(absaetze[3]).toHaveTextContent("Für die Abos gelten die Vertragsbedingungen für die WEBklar-Abos.");
+ });
+});