75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
|
|
# Test Report – T01: Frontend Foundation
|
|||
|
|
|
|||
|
|
## Build Verification
|
|||
|
|
- **Command:** `npm run build`
|
|||
|
|
- **Result:** ✅ Build complete, 0 errors
|
|||
|
|
- **Output:** 2.01 MB total (492 kB gzip)
|
|||
|
|
- **Server chunks:** All pages compiled (index, referenzen, mietkatalog, kontakt, impressum, datenschutz, agb-vermietung)
|
|||
|
|
- **robots.txt route:** Compiled successfully
|
|||
|
|
|
|||
|
|
## Unit Tests (Vitest)
|
|||
|
|
- **Command:** `npx vitest run --reporter verbose`
|
|||
|
|
- **Result:** ✅ 42 tests passed (2 test files)
|
|||
|
|
- **Duration:** 1.19s
|
|||
|
|
|
|||
|
|
### Test Details:
|
|||
|
|
- **DesignTokens.test.ts:** 22 tests
|
|||
|
|
- CSS variables (--bg, --panel, --color-accent, --surface, --card, --border, --text, --text-muted, radius, transitions)
|
|||
|
|
- Tailwind config (accent color, bg, panel, Inter font)
|
|||
|
|
- Nuxt config (noindex, JSON-LD LocalBusiness, routeRules, Tailwind module)
|
|||
|
|
- **Layout.test.ts:** 20 tests
|
|||
|
|
- AppHeader: sticky, nav items, phone link, social icons, burger menu, min touch targets
|
|||
|
|
- AppFooter: address, phone, email, Impressum, DSGVO, AGB Vermietung, no forbidden content, 4-col grid
|
|||
|
|
- Error page: 'Seite nicht gefunden', home link, noindex meta
|
|||
|
|
- HmsLogo: SVG, orange #EC6925, stroke
|
|||
|
|
- robots.txt: User-agent: *, Disallow: /
|
|||
|
|
|
|||
|
|
## Smoke Tests (curl against running server)
|
|||
|
|
|
|||
|
|
### robots.txt
|
|||
|
|
```bash
|
|||
|
|
curl -s http://localhost:3000/robots.txt
|
|||
|
|
```
|
|||
|
|
**Output:**
|
|||
|
|
```
|
|||
|
|
User-agent: *
|
|||
|
|
Disallow: /
|
|||
|
|
```
|
|||
|
|
✅ Contains 'Disallow: /'
|
|||
|
|
|
|||
|
|
### Noindex Meta Tag
|
|||
|
|
```bash
|
|||
|
|
curl -s http://localhost:3000/ | grep 'noindex'
|
|||
|
|
```
|
|||
|
|
**Output:** `noindex, nofollow, noarchive, nosnippet`
|
|||
|
|
✅ All four directives present
|
|||
|
|
|
|||
|
|
### JSON-LD LocalBusiness
|
|||
|
|
```bash
|
|||
|
|
curl -s http://localhost:3000/ | grep 'LocalBusiness'
|
|||
|
|
```
|
|||
|
|
**Output:** `LocalBusiness`
|
|||
|
|
✅ JSON-LD schema present on home page
|
|||
|
|
|
|||
|
|
### 404 Error Page
|
|||
|
|
```bash
|
|||
|
|
curl -s -H 'Accept: text/html' http://localhost:3000/nicht-existent | grep 'Seite nicht gefunden'
|
|||
|
|
```
|
|||
|
|
**Output:** `Seite nicht gefunden`
|
|||
|
|
✅ Custom 404 page renders with German text and home link
|
|||
|
|
|
|||
|
|
## TypeScript
|
|||
|
|
- **Config:** strict mode enabled in nuxt.config.ts
|
|||
|
|
- **Result:** No TypeScript errors during build
|
|||
|
|
|
|||
|
|
## Summary
|
|||
|
|
| Check | Status |
|
|||
|
|
|-------|--------|
|
|||
|
|
| npm run build | ✅ Pass |
|
|||
|
|
| vitest (42 tests) | ✅ All pass |
|
|||
|
|
| robots.txt Disallow: / | ✅ Verified |
|
|||
|
|
| noindex meta tag | ✅ Verified |
|
|||
|
|
| JSON-LD LocalBusiness | ✅ Verified |
|
|||
|
|
| 404 page 'Seite nicht gefunden' | ✅ Verified |
|
|||
|
|
| TypeScript strict | ✅ No errors |
|