Seitentitel und Beschreibung für Abo-, AGB-, Impressum- und 404-Seite

usePageMeta setzt jetzt auch auf /wartungs-abo, /hosting-abo, /agb,
/impressum und der 404-Seite Titel (Wartungs-Abo, Hosting-Abo, AGB,
Impressum, Seite nicht gefunden; der Hook ergänzt " | WEBklar") und
Beschreibung. Die Abo-Beschreibungen nennen nur Preis, Mindestlaufzeit und
Leistungen, die auf der jeweiligen Seite stehen; Impressum nennt Winnweiler
wie die Seite selbst. Die 404-Seite behält die Standardbeschreibung.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Sonnet 5.5 committed 2026-10-01 10:42:43 +00:00
1 parent f0ae8c0be2
commit 77672b55d3
6 files changed
+82

No files matched your search

+62
View File
@@ -388,3 +388,65 @@ describe("C2 Datenschutzhinweis am Kontaktformular", () => {
expect(screen.getByRole("link", { name: "Datenschutzerklärung" })).toHaveClass("text-foreground", "underline");
});
});
describe("C3 Seitentitel und Beschreibung der Unterseiten", () => {
// Beschreibungen nur aus Fakten, die auf der jeweiligen Seite stehen (Preis, Mindestlaufzeit, Leistungen).
const FAELLE: { pfad: string; titel: string; beschreibung: string; auf_der_seite: string[] }[] = [
{
pfad: "/wartungs-abo",
titel: "Wartungs-Abo | WEBklar",
beschreibung:
"Betrieb, Pflege und Betreuung Ihrer Website: 50,00 € pro Monat, 12 Monate Mindestlaufzeit. Mit Domain, Postfächern und 1 Stunde Arbeitszeit pro Monat.",
auf_der_seite: [
"Betrieb, Pflege und Betreuung Ihrer Website",
"50,00 € pro Monat",
"12 Monate Mindestlaufzeit",
"1 Domain inklusive",
"Postfächer",
"1 Stunde Arbeitszeit pro Monat",
],
},
{
pfad: "/hosting-abo",
titel: "Hosting-Abo | WEBklar",
beschreibung:
"Ihre statische Website auf unserem Server in Deutschland: 20,00 € pro Monat, 12 Monate Mindestlaufzeit. Inklusive Domain und E-Mail-Postfach.",
auf_der_seite: [
"Ihre statische Website auf unserem Server in Deutschland: 20,00 € pro Monat, 12 Monate Mindestlaufzeit.",
"1 Domain inklusive",
"1 E-Mail-Postfach",
],
},
{
pfad: "/agb",
titel: "AGB | WEBklar",
beschreibung: "Allgemeine Geschäftsbedingungen der WEBklar GbR.",
auf_der_seite: [],
},
{
pfad: "/impressum",
titel: "Impressum | WEBklar",
beschreibung: "Impressum der WEBklar GbR, Winnweiler.",
auf_der_seite: ["WEBklar GbR", "67722 Winnweiler"],
},
];
it.each(FAELLE)("$pfad setzt Titel und Beschreibung", ({ pfad, titel, beschreibung }) => {
seite(pfad);
expect(document.title).toBe(titel);
expect(meta("description")).toBe(beschreibung);
expect(beschreibung.length).toBeLessThanOrEqual(160);
});
it.each(FAELLE)("$pfad: jede Aussage der Beschreibung steht auch auf der Seite", ({ pfad, auf_der_seite }) => {
seite(pfad);
const text = (document.body.textContent ?? "").replace(/\s+/g, " ");
for (const fakt of auf_der_seite) expect(text).toContain(fakt);
});
it("die 404-Seite setzt den Titel »Seite nicht gefunden«", () => {
vi.spyOn(console, "error").mockImplementation(() => {});
seite("/gibt-es-nicht");
expect(document.title).toBe("Seite nicht gefunden | WEBklar");
});
});