Skip to content

Commit 735a0e1

Browse files
alicodingclaude
andauthored
docs: testing.md gains 0223's seeded-content rules (gallery home, wrapper needle pattern, no fixed pixels) (#471)
Claude-Session: https://claude.ai/code/session_012im1JxQQV2ahnXzZDdVmZq Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 3511aa5 commit 735a0e1

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

.claude/rules/testing.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,20 @@ user primitive can reach the state.
286286
per-worker server, `withClipboardLock`, `clickCanvasNode`,
287287
`atlasCards`/`atlasPage`, `waitForViewportStable` + percentage-position
288288
clicks.
289+
- **Seeded-content rules on the landing board (goal 0223's nine
290+
findings)**: "Board gallery" is the PERMANENT single home for every
291+
seeded example board object — future seeds land as its children,
292+
never as new root cards (a second root card kills ADR-0038's
293+
exact-one-root auto-entry; a new root-level footprint re-fits the
294+
viewport and breaks placement-sensitive specs wholesale). Specs
295+
scope board-object locators via `nonSeededBoardObjectWrapper`
296+
(fixtures/atlasBoard.ts) — NEVER pass a needle carrying its own
297+
`.react-flow__node:not(...)` ancestor clause into `filter({has})`:
298+
Playwright re-queries the needle inside each candidate, demanding a
299+
nested wrapper that never exists, and the failure is a silent
300+
zero-match. No new fixed-pixel placements — derive from
301+
`findEmptyBoardRect`/`zoomAllTheWayOut`, and leave margin for the
302+
test's own drags (edge placement triggers React Flow auto-pan).
289303
- **Assertion style**: web-first `expect(...)` retrying assertions over
290304
one-shot `boundingBox()` sampling after anything animated — poll
291305
geometry (`expect.poll`) or wait for transform stability first. New

0 commit comments

Comments
 (0)