Playwright testing patterns for droneroute. Covers screenshot automation, test structure, and CI integration.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
All screenshots are taken at coordinates: 41.25797725781744, 0.9322907667035154 (as defined in AGENTS.md).
Viewport
Standard screenshot viewport: 1280x720
Selector patterns
Leaflet map interactions
The map is rendered via react-leaflet. Key selectors:
Map container: .leaflet-container
Map click: Use Playwright's page.click('.leaflet-container', { position: { x, y } })
Markers: .leaflet-marker-icon
Popups: .leaflet-popup-content
Radix UI components
This app uses @radix-ui/react-*. Components use data-state attributes:
Component
Selector pattern
Dialog
[role="dialog"]
Select
[role="combobox"]
Tab trigger
[role="tab"]
Dropdown item
[role="menuitem"]
Tooltip
[role="tooltip"]
Zustand state
State changes happen synchronously via Zustand. After a UI action, the DOM updates on the next React render — use waitForSelector or expect(locator).toBeVisible() rather than arbitrary waits.