mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
2.4 KiB
2.4 KiB
Manual Verification Checklist
A standing memo, not a milestone. These are the things automated tests can't cover — they need a real browser, a real install, or a human eye. Run the relevant sections before a release, or after any change to the app shell, PWA config, routing, theming, or focus/keyboard behavior. Tests stay green ≠ these pass.
Offline & installable (PWA)
- First load online, then go offline (DevTools → Network → Offline) and reload — the app boots, fonts render (no system-font fallback), a previously-opened snippet still renders.
- Install as a standalone app (desktop install button / Android "Add to Home screen") — it installs, launches in its own window, and shows the astrolabe icon (not a generic glyph).
- Android adaptive icon (maskable) fills the OS shape without clipping the mark.
- Service-worker update flow: ship a new build, reload — the update-available
prompt appears and applying it loads the new version (
registerType: 'prompt'). - iOS home-screen icon — known residual: the manifest ships SVG only; iOS
wants a PNG
apple-touch-icon, so the iOS home-screen icon may fall back.
Keyboard & accessibility
- Full keyboard-only run-through: create/select/edit a snippet, open and dismiss each modal, drive the pane toggle strip and both resize handles, reach Datasets.
- Focus is never orphaned or trapped: modals trap focus and return it to the opener on close; hiding a pane from the strip keeps focus on the toggle.
- Visible focus ring on every interactive control, in both themes.
- Text and UI contrast pass AA in light and dark.
Routing & view-state
- Reload restores the view from the URL hash (
#snippet-<id>,#datasets/…). - Browser Back/Forward moves through view-state as expected.
Theming
- Light⇄dark flip repaints the whole app — chrome, Monaco, and the chart.
- No placeholder styling or raw hexes leak through on any surface.
Reduced motion & feedback
- With
prefers-reduced-motion, toasts and transitions honor it (no large motion). - Toasts stack, auto-dismiss, and fade as specified; the live-preview busy indicator appears for slow (>~1s) renders and clears after.
Visual sweep of the M6 surfaces
- Library search / sort / empty states, the storage monitor, About & Donate modals, and the busy indicator all look deliberate and behave per spec.