101 lines
3.7 KiB
Markdown
101 lines
3.7 KiB
Markdown
# Test Report – T02: Static Pages
|
||
|
||
## Build Verification
|
||
|
||
**Command:** `npm run build`
|
||
**Result:** ✅ Build complete!
|
||
**Output:** Nitro build succeeded, all pages compiled successfully.
|
||
- index-BUIU2FQG.mjs (12.1 kB)
|
||
- referenzen-yQ6M2U3V.mjs (8.22 kB)
|
||
- kontakt-DZRjLPTh.mjs (9.47 kB)
|
||
- impressum-CwZu6BA4.mjs (3.82 kB)
|
||
- datenschutz (included in build)
|
||
- agb-vermietung (included in build)
|
||
- Lightbox component compiled
|
||
|
||
## Unit Tests
|
||
|
||
**Command:** `npx vitest run --reporter verbose`
|
||
**Result:** ✅ 148 tests passed (8 test files)
|
||
|
||
### New Test Files:
|
||
- `tests/unit/HomePage.test.ts` — 11 tests ✅
|
||
- Hero headline 'Veranstaltungstechnik'
|
||
- CTA links to /mietkatalog and /kontakt
|
||
- All 8 services present (Vermietung, Verkauf, Personal, Transport, Lagerung, Werkstatt, Installation, Booking)
|
||
- Speaker grid with 6 equipment types
|
||
- About section with stats (20+, 1000+, 500+)
|
||
- Mietkatalog CTA section
|
||
- TypeScript + Tailwind + useHead checks
|
||
|
||
- `tests/unit/ReferenzenPage.test.ts` — 14 tests ✅
|
||
- 9 gallery images (picsum.photos count = 9)
|
||
- 4 filter chips (Alle, Open-Air, Indoor, Rigging)
|
||
- Lightbox component integration
|
||
- Filter logic with computed filteredImages
|
||
- openLightbox function
|
||
- Lightbox component: close/prev/next buttons with data-testid
|
||
|
||
- `tests/unit/KontaktPage.test.ts` — 19 tests ✅
|
||
- Office address card (Grockelhofen 10, 89340 Leipheim)
|
||
- Warehouse address card (Ellzee)
|
||
- Opening hours card
|
||
- 2 contact persons (Markus Hammerschmidt, Thomas Mössle)
|
||
- Form fields: name*, email*, phone, message*, privacy checkbox*
|
||
- Email validation with regex
|
||
- Submit blocked when email empty
|
||
- Submit blocked when privacy unchecked
|
||
- POST to /api/contact
|
||
- Success and error states
|
||
|
||
## Smoke Test (curl)
|
||
|
||
**Server:** `npm run dev` on localhost:3000
|
||
|
||
| Page | URL | grep pattern | Result |
|
||
|------|-----|-------------|--------|
|
||
| Home | / | `Veranstaltungstechnik` | ✅ Found |
|
||
| Referenzen | /referenzen | `Referenzen` | ✅ Found |
|
||
| Kontakt | /kontakt | `Planen Sie` | ✅ Found |
|
||
| Impressum | /impressum | `Hammerschmidt` | ✅ Found |
|
||
| Datenschutz | /datenschutz | `Datenschutz` | ✅ Found |
|
||
| AGB Vermietung | /agb-vermietung | `AGB` | ✅ Found |
|
||
|
||
## E2E Tests (Playwright)
|
||
|
||
**Files created:**
|
||
- `tests/e2e/home.spec.ts` — 8 tests
|
||
- `tests/e2e/referenzen.spec.ts` — 8 tests
|
||
- `tests/e2e/kontakt.spec.ts` — 8 tests
|
||
- `tests/e2e/legal-pages.spec.ts` — 15 tests
|
||
|
||
**Status:** Written, not yet executed (requires running dev server with Playwright runner).
|
||
|
||
## Files Changed
|
||
|
||
### Pages (modified/created):
|
||
- `pages/index.vue` — Extended: hero with bg image, 6 equipment types, about/stats section, 8 services, CTA
|
||
- `pages/referenzen.vue` — Full gallery with 9 images, 4 filter chips, lightbox integration
|
||
- `pages/kontakt.vue` — Full contact page with addresses, persons, form with validation
|
||
- `pages/impressum.vue` — Full §5 TMG impressum content
|
||
- `pages/datenschutz.vue` — Full DSGVO datenschutzerklärung
|
||
- `pages/agb-vermietung.vue` — Full AGB with 8 sections
|
||
|
||
### Components (created):
|
||
- `components/Lightbox.vue` — Lightbox with prev/next/close, keyboard navigation, teleport
|
||
|
||
### Tests (created):
|
||
- `tests/unit/HomePage.test.ts` — 11 tests
|
||
- `tests/unit/ReferenzenPage.test.ts` — 14 tests (including Lightbox component tests)
|
||
- `tests/unit/KontaktPage.test.ts` — 19 tests
|
||
- `tests/e2e/home.spec.ts` — 8 tests
|
||
- `tests/e2e/referenzen.spec.ts` — 8 tests
|
||
- `tests/e2e/kontakt.spec.ts` — 8 tests
|
||
- `tests/e2e/legal-pages.spec.ts` — 15 tests
|
||
|
||
## Summary
|
||
- Build: ✅ PASS
|
||
- Unit Tests: ✅ 148/148 PASS
|
||
- Smoke Test: ✅ All 6 pages render correct content
|
||
- E2E Tests: Written (awaiting Playwright execution with running server)
|