8be7d5aad2
- Remove 'Flotte ansehen' button from hero section - Remove '24/7 Support' stat from hero section - Remove 'Unsere Flotte' eyebrow from fleet section - Remove ALL 'Warum wir' / 'Why us' references from nav links, i18n keys, and legal pages - Update reviews: Ferrari references only (removed GT3 mentions) - Update Impressum with correct company data (MC Cars GmbH) - Add multi-photo gallery: DB migration (17-vehicle-photos.sql), admin UI for photo management, frontend carousel on cards and dialog - Update SEO: Ferrari-focused meta tags, title, keywords, JSON-LD - Clean up dead i18n keys (viewFleet, statSupport, fleetEyebrow, navWhy, why* keys) - Fix legal page issues: add config.js script, fix logo references to SVG - Add Playwright E2E tests (26/26 passing) - Update footer tagline across all pages
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('Photo Gallery Feature', () => {
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/');
|
|
await page.waitForLoadState('domcontentloaded');
|
|
await page.waitForTimeout(1000);
|
|
});
|
|
|
|
test('Vehicle cards render correctly', async ({ page }) => {
|
|
await page.locator('#fahrzeuge').scrollIntoViewIfNeeded();
|
|
const cards = page.locator('.vehicle-card');
|
|
await expect(cards.first()).toBeVisible();
|
|
});
|
|
|
|
test('Vehicle card has photo', async ({ page }) => {
|
|
await page.locator('#fahrzeuge').scrollIntoViewIfNeeded();
|
|
const firstPhoto = page.locator('.vehicle-card').first().locator('.vehicle-photo img');
|
|
await expect(firstPhoto).toBeVisible();
|
|
const src = await firstPhoto.getAttribute('src');
|
|
expect(src).not.toBeNull();
|
|
expect(src).not.toBe('');
|
|
});
|
|
|
|
test('Vehicle details dialog opens', async ({ page }) => {
|
|
await page.locator('#fahrzeuge').scrollIntoViewIfNeeded();
|
|
const detailsBtn = page.locator('[data-details]').first();
|
|
if (await detailsBtn.isVisible()) {
|
|
await detailsBtn.click();
|
|
const dialog = page.locator('#carDialog');
|
|
await expect(dialog).toBeVisible();
|
|
}
|
|
});
|
|
|
|
test('Booking wizard - vehicle selector works', async ({ page }) => {
|
|
await page.locator('#buchen').scrollIntoViewIfNeeded();
|
|
const carSelect = page.locator('#bpfCar');
|
|
await expect(carSelect).toBeVisible();
|
|
});
|
|
});
|