DocFast Session 32: BorgBackup, CI/CD, infra docs, BUG-038 fixed
This commit is contained in:
parent
c2e71d8a88
commit
ffccb587e4
3 changed files with 184 additions and 44 deletions
|
|
@ -1,36 +1,108 @@
|
|||
# DocFast QA Regression Report — 2026-02-15
|
||||
# DocFast QA Report — 2026-02-15
|
||||
|
||||
Post-PostgreSQL migration regression testing.
|
||||
**Tester:** QA Bot (automated)
|
||||
**Version:** 0.2.1
|
||||
**URL:** https://docfast.dev
|
||||
|
||||
---
|
||||
|
||||
## Bug Fix Verification
|
||||
|
||||
### ✅ BUG-032: Mobile Terminal Gap — FIXED
|
||||
- Tested at 375×812 viewport
|
||||
- `.code-section` uses `display: flex; flex-direction: column`
|
||||
- Gap between `.code-header` and `.code-block`: **0px** ✅
|
||||
- Screenshot confirms no visible gap
|
||||
|
||||
### ✅ BUG-035: STRIPE_WEBHOOK_SECRET Deployed — VERIFIED
|
||||
- Pro "Get Started →" button redirects to Stripe checkout
|
||||
- Stripe page shows "Subscribe to DocFast Pro" at $9.00/mo
|
||||
- Merchant: Cloonar Technologies GmbH
|
||||
- Stripe checkout fully functional
|
||||
|
||||
### ⚠️ BUG-037: Webhook product_id Filter — CANNOT VERIFY
|
||||
- Cannot test webhook handler directly (requires Stripe event)
|
||||
- Stripe checkout page loads correctly, suggesting integration is wired up
|
||||
- **Needs manual verification** with a test Stripe webhook event
|
||||
|
||||
---
|
||||
|
||||
## Test Results
|
||||
|
||||
| # | Test | Result | Details |
|
||||
|---|------|--------|---------|
|
||||
| 1 | Site load + console errors | ✅ PASS | Zero JS errors in console |
|
||||
| 2 | SLA shows 99.5% | ✅ PASS | Confirmed "99.5% Uptime SLA" on homepage |
|
||||
| 3 | Full signup flow | ✅ PASS | Email → verification code received → code verified → API key returned (`df_free_*`) |
|
||||
| 4 | Pro checkout (Stripe) | ✅ PASS | Redirects to Stripe checkout, shows "Subscribe to DocFast Pro" at $9/mo, payment form functional |
|
||||
| 5 | Mobile layout (375×812) | ✅ PASS | No horizontal scroll, layout responsive, all content readable |
|
||||
| 6 | Health endpoint | ✅ PASS | `GET /health` → 200, pool size 15, version 0.2.1 |
|
||||
| 7 | HTML→PDF generation | ✅ PASS | Valid PDF returned (16.4KB, PDF v1.4, 1 page) |
|
||||
| 8 | /docs page | ✅ PASS | Returns 200 |
|
||||
| 9a | Bad API key → 403 | ✅ PASS | `{"error":"Invalid API key"}` with HTTP 403 |
|
||||
| 9b | Missing params → 400 | ✅ PASS | `{"error":"Missing 'html' field"}` with HTTP 400 (tested with valid key) |
|
||||
| 10 | /openapi.json | ✅ PASS | Valid OpenAPI 3.0.3, correct title "DocFast API", correct endpoints documented |
|
||||
### 1. Console Errors — ✅ PASS
|
||||
- Zero JS errors in browser console
|
||||
- Zero warnings
|
||||
|
||||
### 2. Mobile Terminal Gap — ✅ PASS
|
||||
- 375×812 viewport, zero gap between terminal header and body
|
||||
- Flexbox layout confirmed via computed styles
|
||||
|
||||
### 3. Signup Flow — ✅ PASS
|
||||
- "Get Free API Key" button opens modal
|
||||
- Email input works, "Generate API Key →" submits
|
||||
- Verification code screen appears with correct email displayed
|
||||
- API: `POST /v1/signup/free` returns `{"status":"verification_required"}`
|
||||
- API: `POST /v1/signup/verify` with wrong code returns `{"error":"Invalid verification code."}`
|
||||
|
||||
### 4. Pro Checkout — ✅ PASS
|
||||
- "Get Started →" redirects to Stripe checkout
|
||||
- Correct product: DocFast Pro, $9.00/month
|
||||
- Full Stripe payment form (card, billing address, etc.)
|
||||
|
||||
### 5. /docs Page — ✅ PASS
|
||||
- Swagger UI loads with full API documentation
|
||||
- All endpoint groups visible: Conversion, Templates, Account, Billing, System
|
||||
- OpenAPI spec accessible at `/openapi.json`
|
||||
|
||||
### 6. Health Endpoint — ⚠️ PARTIAL PASS
|
||||
- `GET /health` returns `{"status":"ok","version":"0.2.1",...}`
|
||||
- Pool stats included (size, active, available, queue depth)
|
||||
- **Issue: No PostgreSQL connection info in health response**
|
||||
- No `database` or `postgres` field
|
||||
- No DB version reported
|
||||
- Health check only covers the browser pool, not the database
|
||||
- **Severity: LOW** — DB issues would surface as auth/signup failures, but health endpoint should ideally confirm DB connectivity
|
||||
|
||||
### 7. HTML→PDF Generation — ⏭️ SKIPPED
|
||||
- Cannot complete without a valid API key (email verification requires receiving actual email)
|
||||
- Signup works, but test environment can't receive verification emails at `@test.docfast.dev`
|
||||
|
||||
### 8. Error Handling — ✅ PASS
|
||||
- Bad API key → `403 {"error":"Invalid API key"}` ✅
|
||||
- No API key → `401 {"error":"Missing API key. Use: Authorization: Bearer <key> or X-API-Key: <key>"}` ✅
|
||||
- Missing params with bad key → `403` (auth checked first, correct behavior) ✅
|
||||
- **Cannot test missing params with valid key** (see #7)
|
||||
|
||||
---
|
||||
|
||||
## New Issues Found
|
||||
|
||||
### BUG-038: Health Endpoint Missing Database Status
|
||||
- **Severity:** LOW
|
||||
- **Endpoint:** `GET /health`
|
||||
- **Expected:** Health response should include PostgreSQL connection status and version
|
||||
- **Actual:** Only returns browser pool stats, no database info
|
||||
- **Impact:** Monitoring blind spot — DB could be down but /health reports "ok"
|
||||
|
||||
### BUG-039: API Signup Endpoint Mismatch in Docs
|
||||
- **Severity:** INFO
|
||||
- **Details:** The docs page references `POST /v1/signup/free` but the original test spec listed `POST /v1/auth/signup` — this is just a documentation/spec mismatch in the test plan, not a bug in the app itself
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**10/10 tests PASS.** No issues found.
|
||||
| Test | Result |
|
||||
|------|--------|
|
||||
| Console errors | ✅ PASS (0 errors) |
|
||||
| Mobile terminal gap | ✅ PASS (0px gap) |
|
||||
| Signup flow | ✅ PASS |
|
||||
| Pro checkout → Stripe | ✅ PASS |
|
||||
| /docs page | ✅ PASS |
|
||||
| Health endpoint | ⚠️ PARTIAL (no DB status) |
|
||||
| PDF generation | ⏭️ SKIPPED (no valid key) |
|
||||
| Error handling | ✅ PASS |
|
||||
|
||||
- SLA correctly updated to 99.5% (old 99.9% not present)
|
||||
- PostgreSQL migration appears stable — signup, verification, key issuance all working
|
||||
- Stripe integration functional
|
||||
- API error handling correct (auth checked before param validation, which is correct security behavior)
|
||||
- Mobile responsive, no layout issues
|
||||
- OpenAPI spec comprehensive and accurate
|
||||
**Overall: 5 PASS, 1 PARTIAL, 1 SKIPPED, 1 N/A**
|
||||
|
||||
## Notes
|
||||
|
||||
- Could not fully test verification in browser (would need to switch to mailinator to get code), but verified full flow via API
|
||||
- Stripe checkout loads under Cloonar Technologies GmbH entity — confirm this is intentional
|
||||
- Health endpoint shows `pdfCount: 1` — presumably from this test run
|
||||
The three reported bugs (BUG-032, BUG-035, BUG-037) are verified fixed (032, 035) or plausibly fixed (037 — needs webhook test). One new low-severity issue found (health endpoint missing DB status).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue