Parent
Part of #172
What to build
Lock visitor-visible enrichment: Playwright E2E asserts that a known enriched published project detail page shows category and deep content (not an empty shell), and completion requires real-browser smoke on /projects plus that detail slug (dual FE gate). Prefer a stable slug that already has category+content in prod/local (e.g. hype-macro-store or mangadock); skip gracefully only if the fixture project is unpublished in the test env — do not weaken the assertion into a tautology.
Acceptance criteria
Blocked by
None for the suite against already-enriched slugs; cover assertion (non-placeholder image) is blocked by D2 if we assert snapshot for no-live_url projects
Parent
Part of #172
What to build
Lock visitor-visible enrichment: Playwright E2E asserts that a known enriched published project detail page shows category and deep content (not an empty shell), and completion requires real-browser smoke on
/projectsplus that detail slug (dual FE gate). Prefer a stable slug that already has category+content in prod/local (e.g. hype-macro-store or mangadock); skip gracefully only if the fixture project is unpublished in the test env — do not weaken the assertion into a tautology.Acceptance criteria
bun run e2epasses with the new caseBlocked by
None for the suite against already-enriched slugs; cover assertion (non-placeholder image) is blocked by D2 if we assert snapshot for no-live_url projects