Skip to content

Latest commit

Β 

History

History
475 lines (307 loc) Β· 8.92 KB

File metadata and controls

475 lines (307 loc) Β· 8.92 KB

Phase 2 Features - End-to-End Testing Guide

Created: 2026-03-09
Status: Ready for Testing


πŸ§ͺ Testing Instructions

Prerequisites

  1. Start development server: npm run dev
  2. Ensure .env.local is configured with all required keys
  3. Open browser to http://localhost:3000
  4. Sign in with GitHub account

βœ… Feature 1: Embeddable Widget

Test Case W-01: Generate Widget

Steps:

  1. Navigate to /widget
  2. Click "Generate Widget ID" button
  3. Wait for loading state
  4. Verify widget ID appears
  5. Verify success toast appears

Expected:

  • βœ… Widget ID generated (format: widget_xxxxx)
  • βœ… Success toast: "Widget generated successfully!"
  • βœ… Script snippet displayed

Test Status: ⬜ Pass ⬜ Fail


Test Case W-02: Copy Script

Steps:

  1. Click "Copy" button on script snippet
  2. Verify toast appears
  3. 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


Test Case W-03: Test Widget on Test Page

Steps:

  1. Click "Open test page" link
  2. Verify new tab opens
  3. Verify widget appears in bottom-right corner
  4. 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


Test Case W-04: Customize Widget

Steps:

  1. Return to /widget
  2. Scroll to "Customize Widget" section
  3. Select different color preset
  4. Change position to "top-left"
  5. Change size to "large"
  6. Toggle "Show Dates" off
  7. Click "Save" button

Expected:

  • βœ… Preview updates in real-time
  • βœ… Success toast on save: "Widget customization saved!"
  • βœ… Settings persist after reload

Test Status: ⬜ Pass ⬜ Fail


Test Case W-05: Widget Analytics

Steps:

  1. Click "View Analytics" button
  2. Navigate to /analytics/widgets
  3. Verify stats cards display
  4. 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


βœ… Feature 2: Social Post Drafts

Test Case S-01: Navigate to Social Posts

Steps:

  1. Click "Social Posts" in sidebar
  2. Verify page loads at /social

Expected:

  • βœ… Page loads successfully
  • βœ… Entry list displayed
  • βœ… Twitter and LinkedIn sections visible

Test Status: ⬜ Pass ⬜ Fail


Test Case S-02: Generate Twitter Thread

Steps:

  1. Select an entry from list
  2. Choose tone: "Professional"
  3. Click "Generate" button for Twitter
  4. Wait for generation

Expected:

  • βœ… Loading state shows
  • βœ… 2-5 tweets generated
  • βœ… Each tweet ≀280 characters
  • βœ… Hashtags included
  • βœ… Success toast appears

Test Status: ⬜ Pass ⬜ Fail


Test Case S-03: Generate LinkedIn Post

Steps:

  1. Click "Generate" button for LinkedIn
  2. Wait for generation
  3. Verify post length

Expected:

  • βœ… Post generated (1000-1300 chars)
  • βœ… Professional tone
  • βœ… 3-5 hashtags included
  • βœ… Length indicator shows "Good"

Test Status: ⬜ Pass ⬜ Fail


Test Case S-04: Preview and Copy

Steps:

  1. Review Twitter preview
  2. Verify character counts shown
  3. Click "Copy Thread" button
  4. Click "Copy Post" for LinkedIn

Expected:

  • βœ… Previews match platform UI
  • βœ… Character counts accurate
  • βœ… Copy buttons work
  • βœ… Toast confirms copy

Test Status: ⬜ Pass ⬜ Fail


βœ… Feature 3: Email Integrations

Test Case E-01: Find Subscribe Link

Steps:

  1. Navigate to public changelog: /changelog/[user]/[repo]
  2. Scroll to footer
  3. Find "πŸ“§ Subscribe to updates" link
  4. Click link

Expected:

  • βœ… Subscribe link visible in footer
  • βœ… Link navigates to subscribe page
  • βœ… Subscribe form loads

Test Status: ⬜ Pass ⬜ Fail


Test Case E-02: Subscribe to Updates

Steps:

  1. Enter valid email address
  2. Click "Subscribe" button
  3. 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


Test Case E-03: Confirm Subscription

Steps:

  1. Open confirmation email
  2. Click confirmation link
  3. Verify redirect to success page

Expected:

  • βœ… Link works
  • βœ… Redirects to success page
  • βœ… Subscription confirmed in database

Test Status: ⬜ Pass ⬜ Fail


βœ… Feature 4: Analytics Dashboard

Test Case A-01: Page Views Tracking

Steps:

  1. Visit public changelog page
  2. Open DevTools β†’ Network tab
  3. Refresh page
  4. Look for POST to /api/analytics/track

Expected:

  • βœ… Request sent on page load
  • βœ… Response: { success: true }
  • βœ… Visitor cookie set

Test Status: ⬜ Pass ⬜ Fail


Test Case A-02: Most Viewed Entries

Steps:

  1. Navigate to /analytics/most-viewed
  2. Verify leaderboard displays
  3. Change time period filter

Expected:

  • βœ… Top 10 entries shown
  • βœ… View counts displayed
  • βœ… Trend indicators (↑/↓) visible
  • βœ… Time filter updates data

Test Status: ⬜ Pass ⬜ Fail


Test Case A-03: Upvote System

Steps:

  1. Navigate to public changelog
  2. Find upvote button on entry
  3. Click upvote
  4. 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


βœ… Feature 5: Roadmap from Issues

Test Case R-01: Navigate to Roadmap

Steps:

  1. Click "Roadmap" in sidebar
  2. Verify page loads at /roadmap

Expected:

  • βœ… Page loads successfully
  • βœ… Kanban board visible
  • βœ… Three columns: Planned, In Progress, Completed

Test Status: ⬜ Pass ⬜ Fail


Test Case R-02: Sync GitHub Issues

Steps:

  1. Click "Sync Issues" button
  2. Wait for sync to complete
  3. Verify issues appear

Expected:

  • βœ… Loading state shows
  • βœ… Success toast: "Synced X issues"
  • βœ… Issues displayed in cards
  • βœ… GitHub labels shown

Test Status: ⬜ Pass ⬜ Fail


Test Case R-03: Public Roadmap

Steps:

  1. Navigate to /roadmap/[user]/[repo]
  2. Verify public page loads
  3. Check upvote functionality

Expected:

  • βœ… Public page accessible
  • βœ… Stats displayed (features, votes, shipped)
  • βœ… Most requested feature highlighted
  • βœ… Upvote buttons work

Test Status: ⬜ Pass ⬜ Fail


Test Case R-04: Roadmap Upvoting

Steps:

  1. Click upvote on roadmap item
  2. Verify vote count increments
  3. 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 Results Summary

Feature 1: Embeddable Widget

Test Case Status Notes
W-01: Generate Widget ⬜
W-02: Copy Script ⬜
W-03: Test Widget ⬜
W-04: Customize ⬜
W-05: Analytics ⬜

Feature 2: Social Posts

Test Case Status Notes
S-01: Navigate ⬜
S-02: Twitter ⬜
S-03: LinkedIn ⬜
S-04: Preview/Copy ⬜

Feature 3: Email Integrations

Test Case Status Notes
E-01: Find Link ⬜
E-02: Subscribe ⬜
E-03: Confirm ⬜

Feature 4: Analytics

Test Case Status Notes
A-01: Page Views ⬜
A-02: Most Viewed ⬜
A-03: Upvote ⬜

Feature 5: Roadmap

Test Case Status Notes
R-01: Navigate ⬜
R-02: Sync ⬜
R-03: Public ⬜
R-04: Upvote ⬜

πŸ› Bug Report Template

Bug ID: [Feature]-[Number]
Title: [Brief description]
Severity: Critical / High / Medium / Low
Steps to Reproduce:

Expected Result:
Actual Result:
Screenshot: (if applicable)


βœ… Testing Checklist

Pre-Testing

  • Development server running
  • Environment variables configured
  • Browser DevTools open
  • Test email account ready

Post-Testing

  • All test cases executed
  • Bugs documented
  • Screenshots captured
  • Results summarized

Ready to start testing! πŸ§ͺ