Wiki/e2e
Corentin JOGUET 3ea5f822f1 test(e2e): fix all 7 KO steps in smoke suite — R4.8 (9/9 OK)
- waitForURL: replace page.waitForURL (requires load event) with
  expect(page).toHaveURL (polls pushState SPA navigation)
- Title editor: use .page-title [contenteditable] + keyboard.type,
  not input.fill (Docmost title is Tiptap, not a text input)
- Body editor: scope slash command interactions to .editor-container .ProseMirror
  to avoid hitting the title editor
- freshPage debounce: add 800ms wait after Tab so title slug navigate fires
  before the slash test starts (eliminates false framenavigated crash signal)
- Sub-page: hover parent node link by slug, click CreateNode with force:true
  to bypass CSS visibility:hidden on .actions div
- Template picker: target template-picker-search input (unique to open modal)
  to resolve two-instance testid ambiguity (sidebar + page.tsx)
- Sync block: use .node-syncBlock class (Tiptap ReactNodeViewRenderer pattern)
  instead of [data-type="syncBlock"] which is not set
- Backlinks: fix testid to backlinks-panel, widen to accept any state since
  indexing is async; fix wikilink nav to use sidebar link not bracketed text
- Space graph: open SpaceMenu dropdown first, then click graph menuitem

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 13:16:34 +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): fix all 7 KO steps in smoke suite — R4.8 (9/9 OK) 2026-05-08 13:16:34 +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): fix all 7 KO steps in smoke suite — R4.8 (9/9 OK) 2026-05-08 13:16:34 +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.