config/projects/business/memory/bugs.md

118 lines
5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DocFast QA Test Results - 2026-02-14
## Test Session Overview
Backend changes tested:
1. Removed "Custom templates" from Pro plan on landing page
2. Re-added email requirement for free tier signup
3. Migrated from JSON storage to SQLite
## Issues Found
### 🔴 CRITICAL: Mobile Horizontal Scrolling
- **What I tested**: Mobile responsiveness at 375x812 (iPhone X)
- **Expected**: No horizontal scrolling
- **Found**: Page has horizontal scrolling (scroll width: 488px vs viewport: 375px)
- **Impact**: Poor mobile user experience, makes content inaccessible
### 🟡 MEDIUM: Rate Limiting Not User-Friendly
- **What I tested**: Multiple signup attempts
- **Expected**: Clear indication of rate limiting before user hits it
- **Found**: No upfront warning about rate limits, users only discover after filling form
- **Response**: "Too many signup attempts. Please try again in 1 hour."
- **Improvement**: Show rate limit status or warning before form submission
## ✅ TESTS PASSED
### Console Errors ✅
- **Tested**: page.on('pageerror') and page.on('console', type=error)
- **Result**: ZERO errors found on homepage
- **Status**: PASS
### "Custom Templates" Removal ✅
- **Tested**: Full page content and visible text search
- **Result**: "Custom templates" text NOT found anywhere on page
- **Status**: PASS - Feature successfully removed from landing page
### Email Requirement Implementation ✅
- **Tested**: Signup form validation
- **Result**: Email input field has "required" attribute, prevents empty submission
- **Status**: PASS - Email is now required for free tier signup
### Pro Checkout Integration ✅
- **Tested**: Pro "Get Started" button functionality
- **Result**: Successfully redirects to Stripe checkout (checkout.stripe.com)
- **Status**: PASS - Stripe integration working correctly
### API Error Handling ✅
- **Tested**: Bad API keys, missing params, malformed JSON, missing auth
- **Results**:
- Invalid API key: 403 + {"error":"Invalid API key"}
- Missing auth: 401 + {"error":"Missing API key. Use: Authorization: Bearer <key>"}
- Malformed JSON: 400 + HTML error page
- **Status**: PASS - Proper HTTP status codes and error messages
### CORS Configuration ✅
- **Tested**: CORS headers on both signup and API endpoints
- **Results**:
- Signup endpoint: `Access-Control-Allow-Origin: https://docfast.dev` (CORRECT - restrictive)
- API endpoints: `Access-Control-Allow-Origin: *` (CORRECT - allows all for API usage)
- **Status**: PASS - CORS policy correctly implemented per requirements
### Documentation Page ✅
- **Tested**: /docs endpoint accessibility and content
- **Result**: 200 status, contains API documentation content
- **Status**: PASS
### Mobile Touch Targets ✅
- **Tested**: Button sizes for touch accessibility (44px minimum)
- **Result**: All tested buttons meet minimum touch target requirements
- **Status**: PASS
## ⚠️ UNABLE TO FULLY TEST
### API Key Generation (Rate Limited)
- **Attempted**: Multiple signup flows to generate API key
- **Blocker**: Hit rate limit "Too many signup attempts. Please try again in 1 hour."
- **Unable to test**: Actual API key functionality, duplicate email handling, SSRF protection
- **Note**: Rate limiting is good security, but prevents comprehensive testing
### SQLite Migration Verification
- **Status**: No obvious errors, but couldn't verify data persistence due to rate limiting
- **Recommendation**: Backend team should verify data integrity after migration
## FINAL VERDICT
**2 issues found**, **8 tests passed**, **2 tests blocked by rate limiting**.
The critical mobile responsiveness issue needs immediate fixing. The rate limiting UX could be improved but isn't breaking functionality.
---
## QA Run — 2026-02-14 18:00 UTC
**Tester:** Automated Playwright + curl
**Context:** Post-deploy verification of BUG-015, BUG-019, BUG-020, and mobile scroll fix
### Results: ALL 8 TESTS PASSED ✅
| # | Test | Result |
|---|------|--------|
| 1 | Console errors (desktop) | ✅ PASS — 0 errors |
| 2 | Mobile horizontal scroll (375×812) | ✅ PASS — scrollWidth=375, no overflow |
| 3 | Free signup flow (email → API key) | ✅ PASS — key `df_free_73671ae7...` returned |
| 4 | Pro checkout → Stripe | ✅ PASS — redirected to checkout.stripe.com |
| 5 | "Custom templates" removed | ✅ PASS — text not found on page |
| 6 | API: HTML→PDF conversion | ✅ PASS — 200, application/pdf |
| 7 | PDF validation | ✅ PASS — 7149 bytes, valid PDF 1.4 |
| 8a | Error: bad API key | ✅ PASS — 403 |
| 8b | Error: missing params | ✅ PASS — 400 |
| 8c | Error: wrong content-type | ✅ PASS — 415 |
### Verified Fixes
- **BUG-019:** "Custom templates" text completely absent from page ✅
- **BUG-020:** Email input present and required for free signup ✅
- **CRITICAL mobile scroll:** scrollWidth matches viewport at 375px, no overflow ✅
- **BUG-015:** Signup succeeded (implying SQLite backend works) ✅
### Issues Found
**None.** All tests passed cleanly. Zero console errors on both desktop and mobile viewports.