Mobile-First Testing Skill
Test Athlyst pages in mobile viewport to catch responsive issues, verify mobile UX, and capture screenshots for visual comparison.
When to Use This Skill
- •After making UI changes to verify mobile responsiveness
- •When debugging mobile-specific bugs
- •To visually audit mobile layouts before deployment
- •When the user asks to "test mobile", "check on mobile", or "mobile QA"
Prerequisites
- •Dev server running at
http://localhost:8080(or configured port) - •If not running, start with:
npm run dev
Mobile Viewports
Use these standard viewports for testing:
| Device | Width | Height |
|---|---|---|
| iPhone SE | 375 | 667 |
| iPhone 12/13 | 390 | 844 |
| iPhone 14 Pro Max | 430 | 932 |
| Pixel 5 | 393 | 851 |
| Galaxy S21 | 360 | 800 |
Default viewport: iPhone 12 (390×844)
Key Routes to Test
Public Routes (no auth required)
- •
/- Landing page - •
/marketplace- Athlete discovery (2-column grid on mobile) - •
/athlete/:slug- Athlete detail (e.g.,/athlete/max-striker)
Protected Routes (requires auth)
- •
/portfolio- User's portfolio - •
/my-athleteor/my-athlete/overview- Own athlete profile - •
/my-athlete/locker- Locker/Inner Circle - •
/feed- Proof of Sweat feed - •
/notifications- Notifications - •
/watchlist- Watchlist
Quick Test Procedures
1. Visual Spot Check (Any Page)
Use the browser_subagent to:
- •Navigate to the target URL
- •Wait for content to load (network idle or specific element)
- •Capture a screenshot
- •Check for:
- •No horizontal scroll (scrollWidth ≤ clientWidth)
- •Bottom navigation visible
- •Content not cut off
Example browser task:
Navigate to http://localhost:8080/marketplace on iPhone 12 viewport (390x844). Wait for the page to fully load. Verify there is no horizontal scroll. Take a screenshot and return the path.
2. Mobile Navigation Test
Test the bottom tab bar navigation:
- •Navigate to
/marketplace - •Tap "Portfolio" tab → verify
/portfolioloads - •Tap "Profile" tab → verify
/my-athleteloads - •Tap "Market" tab → verify
/marketplaceloads
3. Mobile Marketplace Grid Test
Verify the 2-column athlete grid:
- •Navigate to
/marketplace - •Check that athlete cards are in 2-column layout
- •Verify the activity icon is in header (opens bottom sheet)
- •Check filter/sort bar is not overflowing
4. Mobile Athlete Profile Test
For viewing another athlete:
- •Navigate to
/athlete/{slug} - •Verify mobile action bar is visible at bottom
- •Check Buy/Sell buttons are tappable (≥44px height)
- •Verify Inner Circle card shows locked state
For own profile:
- •Navigate to
/my-athlete - •Verify NO Buy/Sell buttons are shown
- •Check for Share button presence
- •Verify "Add Proof of Sweat" CTA is visible
5. Touch Target Size Audit
All interactive elements should be ≥44px (Apple HIG):
- •Navigate to the page
- •Identify all buttons, links, and tappable areas
- •Verify each has min dimensions of 44x44px
6. Safe Area / Bottom Navigation Test
Verify content is not hidden by bottom nav:
- •Navigate to a long scrollable page
- •Scroll to the very bottom
- •Verify last content item is visible above bottom nav
- •Check for
pb-[env(safe-area-inset-bottom)]padding
Common Mobile Issues to Check
| Issue | How to Detect |
|---|---|
| Horizontal scroll | document.documentElement.scrollWidth > document.documentElement.clientWidth |
| Text truncation | Visually inspect or check for text-overflow: ellipsis issues |
| Touch targets too small | Measure button/link dimensions (<44px) |
| Bottom content cut off | Last item hidden by bottom nav |
| Viewport issues | Content overflowing body width |
| Z-index conflicts | Elements covering the sticky bottom bar |
Recording Names for Tests
Use descriptive recording names when running browser tests:
- •
mobile_marketplace_grid - •
mobile_athlete_detail - •
mobile_own_profile - •
mobile_nav_flow - •
mobile_trade_flow - •
mobile_feed_scroll
Example: Full Mobile QA Smoke Test
To run a comprehensive mobile smoke test:
- •
Start dev server (if not running):
bashnpm run dev
- •
Test Landing Page (public):
- •Navigate to
/at 390x844 - •Verify hero section, "How it works" section visible
- •No horizontal scroll
- •Navigate to
- •
Test Marketplace (public):
- •Navigate to
/marketplace - •Verify 2-column grid
- •Tap an athlete card → opens athlete detail
- •Navigate to
- •
Test Athlete Detail (public):
- •Navigate to
/athlete/max-striker - •Verify profile header, market cap card
- •Verify mobile action bar with Buy/Sell/Message buttons
- •Navigate to
- •
Test Own Profile (requires auth simulation):
- •Navigate to
/my-athlete - •Verify NO Buy/Sell buttons
- •Verify Inner Circle card
- •Verify "Add Proof of Sweat" button
- •Navigate to
Integration with Existing Tests
The project already has Playwright tests in tests/e2e/:
- •
mobile-cta-bar.spec.ts- Tests mobile action bar - •
mobile-locker-history.spec.ts- Tests locker on mobile
To run existing Playwright tests:
npx playwright test tests/e2e/mobile-cta-bar.spec.ts
To run all E2E tests:
npx playwright test
Reporting Results
After testing, summarize findings:
## Mobile QA Results **Device**: iPhone 12 (390×844) **Routes Tested**: /marketplace, /athlete/max-striker, /my-athlete ### ✅ Passed - No horizontal scroll on any page - Bottom navigation visible and tappable - 2-column grid on marketplace ### ⚠️ Issues Found - [Page]: [Description of issue] - [Screenshot path if captured] ### 📸 Screenshots - /path/to/screenshot1.png - /path/to/screenshot2.png