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.
57 lines
4 KiB
Markdown
57 lines
4 KiB
Markdown
# 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: [2m - waiting for getByRole('link', { name: /graph\|graphe/i }).or(getByRole('button', { name: /graph\|graphe/i })).first()[22m | `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: [2m - waiting for getByRole('link', { name: /graph|graphe/i }).or(getByRole('button', { name: /graph|graphe/i })).first()[22m
|
||
- 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
|
||
```
|