Wiki/e2e
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
..
fixtures test(e2e): add Playwright cross-stack tests for R3.1.e database-view 2026-05-08 00:37:23 +02:00
scripts test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
tests test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
.gitignore test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
package-lock.json test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
package.json test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
playwright.config.ts test(e2e): add Playwright cross-stack tests for R3.1.e database-view 2026-05-08 00:37:23 +02:00
playwright.smoke.config.ts test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
README.md test(e2e): add Playwright cross-stack tests for R3.1.e database-view 2026-05-08 00:37:23 +02:00
SMOKE-REPORT.md test(e2e): add acadenice full smoke suite — R4.7 2026-05-08 12:20:14 +02:00
tsconfig.json test(e2e): add Playwright cross-stack tests for R3.1.e database-view 2026-05-08 00:37:23 +02:00

E2E Playwright — formation-hub (R3.1.e)

Cross-stack end-to-end tests for the bridge + DocAdenice + Baserow chain.

Prerequisites

  • Docker + Docker Compose v2
  • Node 22 + npm
  • The repo cloned locally at /home/imugiii/Documents/jsap/formation-hub

Quick start (local)

# 1. Boot the e2e stack (all services)
docker compose -f docker-compose.e2e.yml --env-file .env.e2e up -d --wait

# 2. Install Playwright and browsers (one-time)
cd e2e
npm install
npx playwright install chromium

# 3. Run all 7 scenarios
npm run e2e

# 4. Headed (interactive) run
npm run e2e:headed

# 5. Debug specific test
npm run e2e:debug -- tests/database-view-insert.spec.ts

# 6. Teardown
cd ..
docker compose -f docker-compose.e2e.yml down -v

Test scenarios

File Scenario
tests/auth-login.spec.ts Login UI -> workspace home
tests/database-view-insert.spec.ts Slash /database -> insert table view -> rows visible
tests/database-view-edit-inline.spec.ts Double-click cell -> edit -> persist after reload
tests/database-view-realtime-sse.spec.ts Baserow API update -> SSE -> UI updates without reload
tests/database-view-rbac-denied.spec.ts User without rows:write -> double-click -> read-only only
tests/database-view-kanban-drag.spec.ts Drag kanban card -> column change -> persist after reload
tests/database-view-calendar-reschedule.spec.ts Drag calendar event -> new date -> persist after reload

Environment

Copy .env.e2e from the repo root and adjust if needed. No real secrets are required for local dev — all defaults are non-sensitive placeholders.

CI

The workflow .github/workflows/e2e.yml runs automatically on push to main and on pull requests. It boots the full stack via Docker Compose, runs the Playwright suite in chromium, and uploads test-results + HTML report as artifacts.