This guide provides step-by-step instructions for testing all integrated features.
-
Backend Server Running
cd backend python3 -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 -
Frontend Server Running
cd Devfest npm run dev -
Database Connection
- Ensure Snowflake database is accessible
- Check
.envfile has correct credentials
- Navigate to
http://localhost:5173 - Click "Sign In" or trigger login modal
- Select "Sign in with Google"
- Expected: Google OAuth popup appears
- Complete Google authentication
- Expected:
- Account type selection appears (if not pre-selected)
- After selection, redirects to dashboard
- Token stored in localStorage
- Refresh the page
- Expected:
- ProtectedRoute calls
/api/auth/me - User stays logged in
- No redirect to login page
- ProtectedRoute calls
- Click logout button
- Expected:
- Token removed from localStorage
- Redirected to landing page
- Cannot access protected routes
Issues to Check:
- Login modal shows error messages properly
- Token is stored correctly
- 401 errors trigger logout
- Account type is saved correctly
- Navigate to
/personal - Expected:
- Profile section shows user name and email
- Time Saved stats display correctly
- Loading spinner appears initially
- No errors in console
Check:
-
GET /api/personal/profilecalled successfully - Data displays correctly
- Loading states work
- Error handling works
- On Personal Dashboard, check Session Timeline (left panel)
- Expected:
- Sessions load from
GET /api/personal/sessions - Sessions display with date, time, duration
- Clicking a session selects it
- Menu actions work (mark complete, rename, regenerate)
- Sessions load from
Test Actions:
- Click session → selects and loads notes
- Right-click → menu appears
- Mark Complete → updates via
PATCH /api/personal/sessions/{id} - Rename → updates via
PATCH /api/personal/sessions/{id} - Regenerate Summary → calls
POST /api/personal/sessions/{id}/regenerate-summary
- Select a session from timeline
- Expected:
- Notes load from
GET /api/personal/sessions/{id}/notes - Chronological entries display
- Can edit and save notes
- Notes load from
Test Actions:
- Notes load correctly
- Click "Save All" → calls
PUT /api/personal/sessions/{id}/notes - Click "Generate Summary" → calls
POST /api/personal/sessions/{id}/generate-summary - Click "Export to Google Doc" → calls
POST /api/personal/sessions/{id}/export/google-doc - Click "Download Markdown" → calls
GET /api/personal/sessions/{id}/export/markdown
- Navigate to notebook entries section
- Expected:
- Entries load from
GET /api/personal/notebook-entries - Can view, create, update, delete entries
- Entries load from
Test Actions:
- View entry details →
GET /api/personal/notebook-entries/{id} - Create entry →
POST /api/personal/notebook-entries - Update entry →
PUT /api/personal/notebook-entries/{id} - Delete entry →
DELETE /api/personal/notebook-entries/{id}
- Click "AI Search" button
- Enter a search query
- Expected:
- Calls
POST /api/personal/ai-search - Returns relevant results
- Displays results in chat interface
- Calls
- Navigate to
/enterprise - Expected:
- Documents load from
GET /api/google-docs/documents - KPIs load from
GET /api/enterprise/kpis - All widgets display data
- Documents load from
Check:
- Documents list appears
- Time Reclaimed KPI shows
- Top Documents widget shows
- Efficiency Prediction Chart shows
- Click a document in Friction Heatmap
- Expected:
- Document content loads via
GET /api/enterprise/documents/{id} - Suggestions load via
GET /api/suggestions?documentId={id} - Document heatmap view displays
- Hotspots highlighted
- Document content loads via
Test Actions:
- Click document → loads content and suggestions
- Hover hotspot → highlights in document view
- Click hotspot → scrolls to suggestion in queue
- With document selected, check suggestions queue
- Expected:
- Suggestions display with confidence, reasoning
- Can select multiple suggestions
- Can accept/reject suggestions
Test Actions:
- Select suggestion checkbox
- Click "Accept" → calls
POST /api/enterprise/suggestions/{id}/accept - Click "Reject" → calls
POST /api/enterprise/suggestions/{id}/reject - Click "Apply to Google Doc" → calls
POST /api/google-docs/apply-edit
- Select a suggestion
- Click "Apply to Google Doc" button
- Expected:
- Loading state shows
- Calls
POST /api/google-docs/apply-edit - Success message appears
- Google Doc URL provided
Note: This requires Google access token. May need to pass google_access_token query param.
- Select multiple suggestions
- Click "Generate Report" in footer
- Expected:
- Calls
POST /api/enterprise/exports/generate-report - Navigates to exports page with data
- Calls
- Navigate to
/enterprise/profile - Expected:
- Organization data loads from
GET /api/enterprise/organization - Shows org name, members, metrics
- Organization data loads from
- In profile, go to Google Drive Integration section
- Expected:
- Sources load from
GET /api/enterprise/google-drive/sources - Can add source →
POST /api/enterprise/google-drive/sources - Can remove source →
DELETE /api/enterprise/google-drive/sources/{id}
- Sources load from
- Go to Team Members section
- Expected:
- Members load from
GET /api/enterprise/members - Can add member →
POST /api/enterprise/members - Can remove member →
DELETE /api/enterprise/members/{id} - Can update role →
PATCH /api/enterprise/members/{id}/role
- Members load from
- Go to Settings section
- Expected:
- Settings load from
GET /api/enterprise/settings - Can update →
PUT /api/enterprise/settings
- Settings load from
- Navigate to
/personal/profile - Go to Persona Settings
- Expected:
- Settings load from
GET /api/personal/persona - Can update →
PUT /api/personal/persona
- Settings load from
- Go to Privacy Settings
- Expected:
- Settings load from
GET /api/personal/privacy-settings - Can update →
PUT /api/personal/privacy-settings
- Settings load from
- Open extension popup
- Expected:
- Status loads from
GET /api/extension/status - Shows active session if any
- Status loads from
- Click "Start Session" in extension
- Expected:
- Calls
POST /api/extension/session/start - Session ID returned
- Status updates
- Calls
- Click "Stop Session"
- Expected:
- Calls
POST /api/extension/session/{id}/stop - Session ends
- Duration calculated
- Calls
- Browse pages with extension active
- Expected:
- Calls
POST /api/extension/history/track - History stored in session metadata
- Calls
Fix:
- Check token is in localStorage:
localStorage.getItem('auth_token') - Verify token format: Should start with
eyJ... - Check backend is running
- Verify CORS settings
Fix:
- Check
backend/app/main.pyCORS settings - Verify
FRONTEND_URLin.envmatches frontend URL - Check browser console for specific CORS error
Fix:
- Check browser Network tab for failed requests
- Verify endpoint URLs are correct
- Check backend logs for errors
- Verify database connection
Fix:
- Ensure Google access token is provided
- Check token has correct scopes
- Verify Google Docs API is enabled in Google Cloud Console
Fix:
- Check TypeScript types match backend response
- Verify API client functions return correct types
- Check console for type errors
-
Browser DevTools
- Network tab: Check all API calls
- Console tab: Check for errors
- Application tab: Check localStorage for token
-
Backend Logs
- Check terminal running backend
- Look for error stack traces
- Verify SQL queries execute
-
Database Queries
- Check Snowflake query history
- Verify data exists in tables
- Check table schemas match models
-
API Testing
- Use Postman or curl to test endpoints directly
- Verify request/response formats
- Test with and without authentication
- Fix any bugs found
- Add error handling where missing
- Improve loading states
- Add user feedback for actions
- Optimize API calls (caching, debouncing)
- Add unit tests for API client
- Add integration tests for critical flows
Date: ___________
Tester: ___________
### Authentication
- [ ] Login works
- [ ] Token verification works
- [ ] Logout works
- Issues: ___________
### Personal Dashboard
- [ ] Profile loads
- [ ] Sessions load
- [ ] Notes load/save
- [ ] Notebook entries work
- [ ] AI search works
- Issues: ___________
### Enterprise Dashboard
- [ ] Documents load
- [ ] Suggestions load
- [ ] Apply edit works
- [ ] KPIs display
- Issues: ___________
### Profile & Settings
- [ ] Organization data loads
- [ ] Team members work
- [ ] Settings save
- Issues: ___________
### Extension
- [ ] Status works
- [ ] Session start/stop works
- [ ] History tracking works
- Issues: ___________