- Delete extra test-post.md (scope creep from F4) - Fix EN blog index: strip 'en/' prefix from post.id in links - Fix RU blog index: strip 'ru/' prefix from post.id in links - Fix schema URLs in both blog indices to use clean slugs
70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
# Final QA Verdict — Wave F3
|
|
|
|
## Build Status
|
|
- 93 pages built, 0 errors
|
|
- No Zod validation errors
|
|
|
|
## Per-Task QA Results
|
|
|
|
| Task | Description | Status |
|
|
|------|-------------|--------|
|
|
| 1 | Build passes, no Zod errors | PASS |
|
|
| 2 | `<main>` in about/privacy | PASS |
|
|
| 3 | Ad block after `<main>` | PASS |
|
|
| 4 | `hreflang="x-default"` | PASS |
|
|
| 5 | `<xhtml:link>` in sitemap | PASS |
|
|
| 6 | OG tags on index + dice | PASS |
|
|
| 7 | category field in schema | PASS |
|
|
| 8 | All 28 JSONs have category | PASS |
|
|
| 9 | Organization schema | PASS |
|
|
| 10 | dist/404.html exists | PASS |
|
|
| 11 | @astrojs/rss in package.json | PASS |
|
|
| 12 | BlogPosting schema in posts | PASS |
|
|
| 13 | dist/blog/*/index.html exists (9 EN) | PASS |
|
|
| 14 | dist/ru/blog/*/index.html exists (8 RU) | PASS |
|
|
| 15 | Blog index pages exist | PASS |
|
|
| 16 | RSS feeds exist | PASS |
|
|
| 17 | Gaming category has dice content | PASS |
|
|
| 18 | Category links on homepage | PASS |
|
|
| 19 | `aria-label="Breadcrumb"` | PASS |
|
|
| 20 | Related generators on dice | PASS |
|
|
| 21 | RelatedPosts on blog pages | PASS |
|
|
| 22-23 | 9 EN + 8 RU blog posts | PASS |
|
|
| 24 | Blog link in homepage | PASS |
|
|
| 25-26 | Breadcrumbs on generator/blog | PASS |
|
|
|
|
## Integration Tests
|
|
|
|
| Test | Status |
|
|
|------|--------|
|
|
| Homepage loads with category pills + generator grid | PASS |
|
|
| Category page filters correctly (gaming has dice, no password) | PASS |
|
|
| Blog index lists posts | PASS (but links broken — see bugs) |
|
|
| Blog post renders with BlogPosting schema | PASS |
|
|
| RSS feed contains posts | PASS |
|
|
| Prev/next navigation on blog posts | PASS |
|
|
| Related posts show on blog pages | PASS |
|
|
| Related generators show on generator pages | PASS |
|
|
| 404 page renders | PASS |
|
|
|
|
## Edge Cases
|
|
|
|
| Test | Status |
|
|
|------|--------|
|
|
| RU locale on all pages | PASS |
|
|
| Empty blog collection | N/A (collection has posts) |
|
|
| Category with excluded generators | PASS (gaming=6, security=3, etc.) |
|
|
|
|
## Bugs Found
|
|
|
|
### CRITICAL: Blog Index Broken Links
|
|
- **EN blog index** links to `/blog/en/<slug>/` but posts exist at `/blog/<slug>/`
|
|
- **RU blog index** links to `/ru/blog/ru/<slug>/` but posts exist at `/ru/blog/<slug>/`
|
|
- **Impact**: All blog index links are 404s
|
|
- **Root cause**: `post.slug` includes locale prefix (e.g. `en/color-theory-palettes`) in the blog collection
|
|
- **Isolated to**: Blog index pages only. Individual post prev/next and RelatedPosts links are correct.
|
|
|
|
## Score
|
|
|
|
Scenarios 26/26 pass | Integration 8/9 pass | Edge Cases 2/2 tested | VERDICT: CONDITIONAL PASS
|