2.2 KiB
Exact-artifact acceptance contract
Before test execution freeze the delivered file path and hash, expected slide IDs/titles, expected interactive-node inventory and browser scope. The included test is a six-slide/six-node example contract. When adapting it, change those expectations to the real deck; DECK_PATH alone does not make the demo-specific assertions a generic validator.
Automated checks
- Build from source; load that exact
file://artifact with context offline before navigation. - Collect all HTTP(S) request attempts (failed attempts also fail), page errors and console errors.
- Wait for ready and local font loading. Verify computed palette as well as font availability.
- Visit every slide, wait for motion to settle, check text bounds and capture each slide separately.
- Enumerate all interactive nodes and test click, Enter and Space; verify state and real visible effect. Production decks with 46 nodes must test all 46, not a sample.
- Verify arrows, overview, visible fullscreen entry/exit and F entry/exit using actual browser fullscreen state.
- Wait for hash publication before reload. Test storage denial if the delivery environment restricts it.
- Repeat in reduced motion; settle on runtime preference change, print and early slide departure.
- Assert controls disappear in print. For PDF requests, export and inspect every PDF page separately; do not infer pagination quality from this check.
Visual review
Inspect every exact-final screenshot at readable size. Check: clipped text, dense labels, low contrast, ghost transitions, connector endpoints, box-centered labels, visual hierarchy, visible focus, consistent spacing, and narrative continuity. Native text is not proof of legibility. Avoid thumbnail-only review. If requested, deliver each preview separately in order rather than a contact sheet.
Evidence and limitations
evidence/test-report.json binds the exact generated hash to two actual Chromium runs. evidence/slide-*.png are final normal-motion screenshots. evidence/visual-review.md records self-review and fixes. Headless Chromium success is not Safari/Firefox/mobile, screen-reader or projector proof. An independent reviewer was not available in the delegated environment; do not label self-review independent.