feat: Onepage nach Filmcamp-Gliederung umgebaut
- Figtree als einzige Schrift, Logo mittig in fester Kopfzeile - Headerbild ueber volle Breite und Hoehe, ohne Preis, mit Terminleiste - "Was dich erwartet" stellt die Villa mit animierter Bilderfolge vor, darunter Tagesablauf als Karussell (Programm folgt als PDF) - Preis: regulaerer Preis durchgestrichen, kein Verkaufsstartdatum, Ueberschrift "Jetzt Platz sichern mit Early Bird" - Team als "Mit dabei", danach drei Reels im Hochformat - Logo, Headerbild, Portraets und Reels ueber feste Dateinamen im Medienverzeichnis (docs/MEDIEN.md), ohne Neustart austauschbar - Widerrufsbelehrung im Admin pflegbar, Seite /widerruf, Live-Verkauf ohne Freigabe gesperrt - Anreise: Abholung am Bahnhof Firenze Santa Maria Novella - Booking-Link entfernt, Gedankenstriche aus Kundentexten entfernt Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
3cba3e2341
commit
7203cd1e6e
37 files changed
+962
-517
No files matched your search
+6
-2
@@ -10,9 +10,13 @@ import { expect, test } from "@playwright/test";
|
||||
test("Onepage: Aufbau, kein horizontales Scrollen, Barrierefreiheit", async ({ page }, testInfo) => {
|
||||
await page.goto("/");
|
||||
await expect(page.getByRole("heading", { level: 1 })).toContainText("ARTISTA");
|
||||
for (const id of ["camp", "leistungen", "unterkunft", "team", "artista", "preis", "fragen"]) {
|
||||
for (const id of ["termin", "erwartet", "ablauf", "unterkunft", "preis", "team", "fragen"]) {
|
||||
await expect(page.locator(`#${id}`)).toBeAttached();
|
||||
}
|
||||
// Regulaerer Preis durchgestrichen, kein Verkaufsstartdatum, keine Booking-Seite.
|
||||
await expect(page.locator("#preis s")).toContainText("2.750");
|
||||
await expect(page.locator("body")).not.toContainText(/öffnet am|Buchung startet|ab 1\. November/);
|
||||
await expect(page.locator('a[href*="booking.com"]')).toHaveCount(0);
|
||||
// Keine oeffentliche Platzzahl und kein Restplatz-Zaehler.
|
||||
await expect(page.locator("body")).not.toContainText(/Restpl|noch \d+ Pl|Plätze frei/);
|
||||
|
||||
@@ -28,7 +32,7 @@ test("Onepage: Aufbau, kein horizontales Scrollen, Barrierefreiheit", async ({ p
|
||||
|
||||
test("Buchungsdialog: Daten, Gutschein, Ratenplan, Erklaerungen, Fokus", async ({ page }, testInfo) => {
|
||||
await page.goto("/");
|
||||
const trigger = page.locator("#top").getByRole("button", { name: "Platz buchen" });
|
||||
const trigger = page.locator("#top").getByRole("button", { name: "Jetzt Platz sichern" });
|
||||
await trigger.click();
|
||||
|
||||
const dialog = page.getByRole("dialog");
|
||||
|
||||
Reference in new issue
Block a user