docs: how to test the application (browser E2E + out-of-band) #376

Merged
vvzvlad merged 1 commits from docs/how-to-test into develop 2026-07-05 22:40:15 +03:00
Collaborator

Summary

Adds docs/how-to-test.md — a guide for testing the app end-to-end against a running stand (browser E2E + out-of-band verification), and links it from AGENTS.md next to dev-stand.md.

Written from real false-positives that wasted hours during PR testing. Core points:

  • Drive the behaviour under test through the browser, not the API you're validating (API is for one-time setup only).
  • Verify out-of-band (psql / fresh git clone / hard reload) — optimistic UI lies about persistence.
  • The page has TWO ProseMirror editors: [aria-label='Page title'] (non-collab) and [aria-label='Page content'] (the collab body). document.querySelector('.ProseMirror') returns the title, so typing there never changes body content and mod+S versions nothing — tests must target the body editor and wait ~10s for the hocuspocus store debounce.
  • A Traps section listing every false-positive pattern (wrong editor, early persistence check, truncated DB snapshot, API-seeding the thing under test, fixed markers on a non-rebooted stand, single-snapshot "broken" calls, concluding env-limitation without a cross-build control).

Changes

  • docs/how-to-test.md — new guide.
  • AGENTS.md — link to it in the "Bringing up a full local stand" block.
  • docs/dev-stand.md — gotcha #8 (two editors / body vs title / store debounce) pointing to the new guide.

Docs-only; no code changes.

🤖 Generated with Claude Code

## Summary Adds **`docs/how-to-test.md`** — a guide for testing the app end-to-end against a running stand (browser E2E + out-of-band verification), and links it from `AGENTS.md` next to `dev-stand.md`. Written from real false-positives that wasted hours during PR testing. Core points: - **Drive the behaviour under test through the browser**, not the API you're validating (API is for one-time setup only). - **Verify out-of-band** (psql / fresh git clone / hard reload) — optimistic UI lies about persistence. - **The page has TWO ProseMirror editors**: `[aria-label='Page title']` (non-collab) and `[aria-label='Page content']` (the collab body). `document.querySelector('.ProseMirror')` returns the **title**, so typing there never changes body content and `mod+S` versions nothing — tests must target the **body** editor and wait ~10s for the hocuspocus store debounce. - A **Traps** section listing every false-positive pattern (wrong editor, early persistence check, truncated DB snapshot, API-seeding the thing under test, fixed markers on a non-rebooted stand, single-snapshot "broken" calls, concluding env-limitation without a cross-build control). ## Changes - `docs/how-to-test.md` — new guide. - `AGENTS.md` — link to it in the "Bringing up a full local stand" block. - `docs/dev-stand.md` — gotcha #8 (two editors / body vs title / store debounce) pointing to the new guide. Docs-only; no code changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
agent_qa added 1 commit 2026-07-05 22:39:42 +03:00
Adds a testing guide covering how to verify features against a running stand:
drive the behaviour under test through the browser (not the API), verify
out-of-band in the DB/git, and the non-obvious traps. Notably the page has two
ProseMirror editors — [aria-label='Page title'] (non-collab) and
[aria-label='Page content'] (the collab body); querySelector('.ProseMirror')
returns the title, so tests must target the body editor and wait ~10s for the
hocuspocus store debounce. Links the new doc from AGENTS.md next to dev-stand.md
and adds a matching gotcha #8 to dev-stand.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vvzvlad merged commit f77a6b42de into develop 2026-07-05 22:40:15 +03:00
Sign in to join this conversation.