Created: 2026-03-09
Status: Ready for Testing
- Start development server:
npm run dev - Ensure
.env.localis configured with all required keys - Open browser to
http://localhost:3000 - Sign in with GitHub account
Steps:
- Navigate to
/widget - Click "Generate Widget ID" button
- Wait for loading state
- Verify widget ID appears
- Verify success toast appears
Expected:
- β
Widget ID generated (format:
widget_xxxxx) - β Success toast: "Widget generated successfully!"
- β Script snippet displayed
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "Copy" button on script snippet
- Verify toast appears
- Paste in text editor to verify content
Expected:
- β Toast: "Script copied to clipboard!"
- β Script contains correct widget ID
- β
Script format:
<script src="https://gitlog.app/widget.js" data-widget-id="xxx" async></script>
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "Open test page" link
- Verify new tab opens
- Verify widget appears in bottom-right corner
- Click widget header to expand/collapse
Expected:
- β
Widget visible at
/widget-test.html - β Widget shows "What's New" badge
- β Click expands/collapses content
- β Sample entries displayed
Test Status: β¬ Pass β¬ Fail
Steps:
- Return to
/widget - Scroll to "Customize Widget" section
- Select different color preset
- Change position to "top-left"
- Change size to "large"
- Toggle "Show Dates" off
- Click "Save" button
Expected:
- β Preview updates in real-time
- β Success toast on save: "Widget customization saved!"
- β Settings persist after reload
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "View Analytics" button
- Navigate to
/analytics/widgets - Verify stats cards display
- Verify widget list shows
Expected:
- β Overview stats visible (Total Widgets, Impressions, Clicks, CTR)
- β Time period filter works (7d/30d/90d/all)
- β Widget performance table displays
- β Top performing widgets shown
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "Social Posts" in sidebar
- Verify page loads at
/social
Expected:
- β Page loads successfully
- β Entry list displayed
- β Twitter and LinkedIn sections visible
Test Status: β¬ Pass β¬ Fail
Steps:
- Select an entry from list
- Choose tone: "Professional"
- Click "Generate" button for Twitter
- Wait for generation
Expected:
- β Loading state shows
- β 2-5 tweets generated
- β Each tweet β€280 characters
- β Hashtags included
- β Success toast appears
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "Generate" button for LinkedIn
- Wait for generation
- Verify post length
Expected:
- β Post generated (1000-1300 chars)
- β Professional tone
- β 3-5 hashtags included
- β Length indicator shows "Good"
Test Status: β¬ Pass β¬ Fail
Steps:
- Review Twitter preview
- Verify character counts shown
- Click "Copy Thread" button
- Click "Copy Post" for LinkedIn
Expected:
- β Previews match platform UI
- β Character counts accurate
- β Copy buttons work
- β Toast confirms copy
Test Status: β¬ Pass β¬ Fail
Steps:
- Navigate to public changelog:
/changelog/[user]/[repo] - Scroll to footer
- Find "π§ Subscribe to updates" link
- Click link
Expected:
- β Subscribe link visible in footer
- β Link navigates to subscribe page
- β Subscribe form loads
Test Status: β¬ Pass β¬ Fail
Steps:
- Enter valid email address
- Click "Subscribe" button
- Wait for response
Expected:
- β Success message: "Please check your email to confirm"
- β Confirmation email sent (check inbox)
- β Email contains confirmation link
Test Status: β¬ Pass β¬ Fail
Steps:
- Open confirmation email
- Click confirmation link
- Verify redirect to success page
Expected:
- β Link works
- β Redirects to success page
- β Subscription confirmed in database
Test Status: β¬ Pass β¬ Fail
Steps:
- Visit public changelog page
- Open DevTools β Network tab
- Refresh page
- Look for POST to
/api/analytics/track
Expected:
- β Request sent on page load
- β
Response:
{ success: true } - β Visitor cookie set
Test Status: β¬ Pass β¬ Fail
Steps:
- Navigate to
/analytics/most-viewed - Verify leaderboard displays
- Change time period filter
Expected:
- β Top 10 entries shown
- β View counts displayed
- β Trend indicators (β/β) visible
- β Time filter updates data
Test Status: β¬ Pass β¬ Fail
Steps:
- Navigate to public changelog
- Find upvote button on entry
- Click upvote
- Try to upvote again
Expected:
- β First click: Success toast
- β Vote count increments
- β Second click: "Already upvoted" message
- β Vote persists after reload
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "Roadmap" in sidebar
- Verify page loads at
/roadmap
Expected:
- β Page loads successfully
- β Kanban board visible
- β Three columns: Planned, In Progress, Completed
Test Status: β¬ Pass β¬ Fail
Steps:
- Click "Sync Issues" button
- Wait for sync to complete
- Verify issues appear
Expected:
- β Loading state shows
- β Success toast: "Synced X issues"
- β Issues displayed in cards
- β GitHub labels shown
Test Status: β¬ Pass β¬ Fail
Steps:
- Navigate to
/roadmap/[user]/[repo] - Verify public page loads
- Check upvote functionality
Expected:
- β Public page accessible
- β Stats displayed (features, votes, shipped)
- β Most requested feature highlighted
- β Upvote buttons work
Test Status: β¬ Pass β¬ Fail
Steps:
- Click upvote on roadmap item
- Verify vote count increments
- Try to upvote same item again
Expected:
- β First click: Vote increments
- β Second click: "Already upvoted" message
- β Vote persists after reload
Test Status: β¬ Pass β¬ Fail
| Test Case | Status | Notes |
|---|---|---|
| W-01: Generate Widget | β¬ | |
| W-02: Copy Script | β¬ | |
| W-03: Test Widget | β¬ | |
| W-04: Customize | β¬ | |
| W-05: Analytics | β¬ |
| Test Case | Status | Notes |
|---|---|---|
| S-01: Navigate | β¬ | |
| S-02: Twitter | β¬ | |
| S-03: LinkedIn | β¬ | |
| S-04: Preview/Copy | β¬ |
| Test Case | Status | Notes |
|---|---|---|
| E-01: Find Link | β¬ | |
| E-02: Subscribe | β¬ | |
| E-03: Confirm | β¬ |
| Test Case | Status | Notes |
|---|---|---|
| A-01: Page Views | β¬ | |
| A-02: Most Viewed | β¬ | |
| A-03: Upvote | β¬ |
| Test Case | Status | Notes |
|---|---|---|
| R-01: Navigate | β¬ | |
| R-02: Sync | β¬ | |
| R-03: Public | β¬ | |
| R-04: Upvote | β¬ |
Bug ID: [Feature]-[Number]
Title: [Brief description]
Severity: Critical / High / Medium / Low
Steps to Reproduce:
Expected Result:
Actual Result:
Screenshot: (if applicable)
- Development server running
- Environment variables configured
- Browser DevTools open
- Test email account ready
- All test cases executed
- Bugs documented
- Screenshots captured
- Results summarized
Ready to start testing! π§ͺ