Wiki/e2e/SMOKE-REPORT.md
Corentin JOGUET d245f31ab6 test(e2e): add acadenice full smoke suite — R4.7
Adds an autonomous Playwright suite (acadenice-smoke-full.spec.ts) that drives
the prod-like AcadeDoc stack via the UI to surface UI bugs without manual
screenshot diagnostic. Each step is wrapped in test.step and records
network/console/page errors plus per-step screenshots. A post-test script
(scripts/generate-smoke-report.ts) aggregates telemetry into SMOKE-REPORT.md.

The smoke runs against the real fork stack (client :5173, server :3001,
bridge :4000) using Corentin's prod-like Acadenice credentials. It does NOT
share state with the cross-stack e2e suite (no Baserow seeding, no
docker-compose-e2e dependency) — its dedicated playwright.smoke.config.ts
declares no setup project.

Coverage: login, create page, sub-page nesting, wikilink + backlink, slash
/database, slash /template, slash /sync-block, workspace graph, space graph.

Initial run results (baseline): 2 OK / 7 KO / 0 PARTIAL — confirms
SpaceSidebar renders-more-hooks crash when opening "Nouvelle page" submenu
(blank-screen Error Boundary), GET /api/acadenice/templates → 403, and
space-scoped graph entry point not reachable. Captured in SMOKE-REPORT.md
for follow-up by R4.5/R4.6.
2026-05-08 12:20:14 +02:00

57 lines
4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AcadeDoc smoke report — 2026-05-08
Stack: client :5173 — server :3001 — bridge :4000
Result: 2 OK / 7 KO / 0 PARTIAL — total 9
## Feature matrix
| Feature | Status | Details | Screenshot |
|---------|--------|---------|------------|
| Login | OK | Redirected to http://localhost:5173/home | - |
| Create page | KO | page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load" | `screenshots/2-create-page-fail.png` |
| Sub-page (parent-child link) | KO | Sub-page may exist in DB but not nested under parent in sidebar — Parent page not created — skipping | `screenshots/3-create-sub-page-fail.png` |
| Wikilink + backlink | KO | Wikilink/backlink flow broken — Page A not available | `screenshots/4-wikilink-backlink-fail.png` |
| Slash /database | KO | /database broken — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load" | `screenshots/5-slash-database-fail.png` |
| Slash /template | KO | /template broken — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load" | `screenshots/6-slash-template-fail.png` |
| Slash /sync-block | KO | /sync-block broken — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load" | `screenshots/7-slash-sync-block-fail.png` |
| Graph view (workspace) | OK | Graph canvas rendered with nodes | - |
| Graph view (space-scoped) | KO | Space graph broken — locator.click: Timeout 5000ms exceeded. Call log:  - waiting for getByRole('link', { name: /graph\|graphe/i }).or(getByRole('button', { name: /graph\|graphe/i })).first() | `screenshots/9-graph-space-fail.png` |
## Bugs confirmed
- **Create page** — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load"
- screenshot: `screenshots/2-create-page-fail.png`
- **Sub-page (parent-child link)** — Sub-page may exist in DB but not nested under parent in sidebar — Parent page not created — skipping
- screenshot: `screenshots/3-create-sub-page-fail.png`
- **Wikilink + backlink** — Wikilink/backlink flow broken — Page A not available
- screenshot: `screenshots/4-wikilink-backlink-fail.png`
- **Slash /database** — /database broken — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load"
- screenshot: `screenshots/5-slash-database-fail.png`
- **Slash /template** — /template broken — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load"
- screenshot: `screenshots/6-slash-template-fail.png`
- **Slash /sync-block** — /sync-block broken — page.waitForURL: Timeout 5000ms exceeded. — waiting for navigation until "load"
- screenshot: `screenshots/7-slash-sync-block-fail.png`
- **Graph view (space-scoped)** — Space graph broken — locator.click: Timeout 5000ms exceeded. Call log:  - waiting for getByRole('link', { name: /graph|graphe/i }).or(getByRole('button', { name: /graph|graphe/i })).first()
- screenshot: `screenshots/9-graph-space-fail.png`
## Network errors (HTTP >= 400)
- `POST http://localhost:5173/api/users/me` → 401 *(during step: 1-login)*
- `GET http://localhost:5173/api/acadenice/templates` → 403 *(during step: 5-slash-database)*
## Console errors
- `Warning: React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks Previous render Next render` *(step: 2-create-page)*
- `The above error occurred in the <SpaceSidebar> component: at SpaceSidebar (http://localhost:5173/src/features/space/components/sidebar/space-sidebar.tsx?t=1778235101685:32:16) at nav at http://localhost:5173/node_modules/.vite/deps/esm-D` *(step: 2-create-page)*
## Page errors (uncaught exceptions)
- `Error: Rendered more hooks than during the previous render.` *(step: 2-create-page)*
## How to reproduce
```bash
cd formation-hub/e2e
pnpm exec playwright test --config=playwright.smoke.config.ts
pnpm exec tsx scripts/generate-smoke-report.ts
```