Files
skillhub/docs/MANUAL_TEST_CHECKLIST.md
airano 97b427831a Initial release v1.0.0
Open-source marketplace for AI Agent skills.

Features:
- Next.js 15 web app with i18n (en/fa)
- CLI tool for skill installation (npx skillhub)
- GitHub crawler/indexer with multi-strategy discovery
- Security scanning for all indexed skills
- Self-hostable with Docker

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 06:42:07 +03:30

6.7 KiB

SkillHub Manual Test Checklist

This checklist covers features NOT covered by automated E2E tests (43 Playwright tests). Complete before production deployment.

Already Automated - SKIP These

The following are covered by E2E tests in apps/web/e2e/*.spec.ts:

Area E2E Coverage
Homepage Page load, stats, featured skills, navigation links
Browse Skills list, search input, search filter, platform filter, skill cards, detail navigation
Categories Page load, category list, names, skill counts, navigation
Skill Detail Name, description, platforms, install command, GitHub link
i18n EN default, language switcher, FA switch, RTL, Persian text, context preserve
Mobile Mobile nav, menu toggle, single column, text size, touch targets
API /api/health, /api/stats, /api/categories, /api/skills/*, /api/skills/featured, /api/skills/recent

To run E2E tests: pnpm --filter @skillhub/web test:e2e


Tester: ________________ Date: ________________ Environment: [ ] Local Docker [ ] Staging [ ] Production


Prerequisites

  • All Docker containers running (docker ps)
  • Database has data (docker exec skillhub-db psql -U postgres -d skillhub -c "SELECT COUNT(*) FROM skills;")
  • Health endpoint OK (curl http://localhost:3000/api/health)
  • GitHub OAuth configured (for auth tests)

1. Authentication (GitHub OAuth)

Sign In Flow

Test Expected Pass
Click "Sign In" in header Redirects to GitHub OAuth [ ]
Approve on GitHub Returns to app, user dropdown visible [ ]
User dropdown shows avatar + name GitHub profile info displayed [ ]
Refresh page while signed in Session persists [ ]

Sign Out Flow

Test Expected Pass
Click user dropdown → Sign Out Logged out, "Sign In" button reappears [ ]
Refresh after sign out Still logged out [ ]

2. Favorites System (Auth Required)

API Endpoints

Test Expected Pass
GET /api/favorites (unauthenticated) 401 Unauthorized [ ]
GET /api/favorites (authenticated) Returns user's favorites array [ ]
POST /api/favorites with {skillId} 200, skill added [ ]
DELETE /api/favorites with {skillId} 200, skill removed [ ]
POST /api/favorites/check with {skillIds} Returns favorited status [ ]

UI Tests

Test Expected Pass
Click heart on skill detail (unauthenticated) Redirects to sign in [ ]
Click heart on skill detail (authenticated) Heart fills red, added to favorites [ ]
Click filled heart Heart unfills, removed from favorites [ ]
Go to /favorites page Shows all favorited skills [ ]
Click heart on favorites page Skill removed from list [ ]
Empty favorites state "No favorites" message + Browse button [ ]

3. Ratings System (Auth Required)

API Endpoints

Test Expected Pass
GET /api/ratings?skillId=... Returns ratings array + summary [ ]
POST /api/ratings with {skillId, rating: 5} 200, rating saved [ ]
POST /api/ratings with invalid rating (0 or 6) 400 error [ ]
GET /api/ratings/me?skillId=... (authenticated) Returns user's rating [ ]

UI Tests

Test Expected Pass
Click stars (unauthenticated) Redirects to sign in [ ]
Click stars to rate (authenticated) Stars fill, rating submitted [ ]
Change rating New rating saved, average updates [ ]
Refresh page Rating persists [ ]

4. Interactive UI Elements

Browse Page Filters

Test Expected Pass
Sort dropdown (Stars/Downloads/Recent/Rating) Results re-sorted, URL updates [ ]
Verified checkbox Only verified skills shown [ ]
Combined filters (platform + sort + verified) All filters applied together [ ]
Load More button Next page loads, more skills appear [ ]

Skill Detail - Install Section

Test Expected Pass
Platform tabs (Claude/Codex/Copilot) Command changes for each platform [ ]
Copy button Command copied to clipboard, checkmark appears [ ]
Download ZIP button Opens GitHub ZIP download in new tab [ ]
Select Folder button (Chrome) File picker opens, skill files created [ ]

5. Pages Not in E2E Tests

Test Expected Pass
Page loads Shows top featured skills [ ]
Skills sorted by popularity Highest stars first [ ]
Skill cards clickable Navigate to detail page [ ]

New Skills Page (/new)

Test Expected Pass
Page loads Shows recently added skills [ ]
Skills sorted by date Most recent first [ ]
Timestamps displayed "X hours/days ago" format [ ]

Favorites Page (/favorites)

Test Expected Pass
Unauthenticated access Redirects to sign in [ ]
Authenticated + no favorites Empty state shown [ ]
Authenticated + has favorites Skills grid displayed [ ]

6. Error States

Test Expected Pass
Navigate to /nonexistent-page 404 page displayed [ ]
Navigate to /skill/invalid/id Error or 404 shown [ ]
API returns error Graceful error message [ ]

7. Docker Health Checks

Service Command Expected Pass
Web curl http://localhost:3000/api/health status: ok [ ]
Database docker exec skillhub-db pg_isready Ready [ ]
Redis docker exec skillhub-redis redis-cli ping PONG [ ]
Meilisearch curl http://localhost:7700/health available [ ]
Indexer docker logs skillhub-indexer --tail=5 No errors [ ]

8. Real Data Verification

Test Expected Pass
Skills in database SELECT COUNT(*) FROM skills > 0 [ ]
Skills have real GitHub data github_stars, github_owner populated [ ]
Search returns results Search for existing skill works [ ]
Meilisearch synced curl localhost:7700/indexes/skills/stats shows documents [ ]

Notes

Record any issues found:

______________________________________________________________
______________________________________________________________
______________________________________________________________

Sign-off

  • All tests pass
  • No blocking issues
  • Ready for production

Signature: ________________ Date: ________________