- 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> |
||
|---|---|---|
| .. | ||
| fixtures | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| playwright.smoke.config.ts | ||
| README.md | ||
| SMOKE-REPORT.md | ||
| tsconfig.json | ||
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.