📋 Handoff Notes
Lead Me Home | 2026-05-18 session 交接
今天完成了什麼
| 項目 | 狀態 |
| Scramble API 文件(/docs/api) | ✅ 已部署到 Render |
| 寵物圖片修正(images 格式) | ✅ 已修復並部署 |
| LINE 推播通知 | ✅ 已上線,需確認飼主加 LINE 好友 |
| E2E 測試框架(Playwright) | ✅ 80 個測試案例,76 通過 |
| 深度 QA 測試 | ✅ 找到 23 個 bug |
| BE bug 修復 | ✅ 18/23 修復(剩 5 個 FE) |
| Trello 看板同步 | ✅ 23 張卡片 + 標籤 + 封面 |
| Project Hub(index.html) | ✅ 所有文件的入口 |
| 測試殘留資料清理 | ✅ 28 筆 test posts + 34 筆 test pets 已刪除 |
(1) Docs — 由程式碼產生
現況
目前的 HTML docs 都是靜態手寫的,更新很麻煩。建議改成:
建議方案
- API 文件 — 已有 Scramble(自動從程式碼產生),不需要手動維護。存取:
/docs/api
- 流程圖 + 測試報告 — 建一個
scripts/generate-docs.js,讀 test results JSON + Trello API + git log,自動產生 HTML
- Bug report — 直接用 Trello board 當 single source of truth,不再維護 HTML 版
- E2E 測試報告 — Playwright 內建:
npx playwright show-report 自動產生互動式 HTML
具體步驟
# 1. Playwright 自動產生測試報告
npm run test:e2e
npx playwright show-report
# 2. API 文件已自動產生
# https://lead-me-home-be.onrender.com/docs/api
# 3. 流程圖 — 未來可用 Mermaid 語法寫在 .md 裡
# GitHub 和 Notion 都原生支援 Mermaid 渲染
(2) 測試時效問題
目前的問題:測試裡硬編碼了 token 和 post ID,token 會過期、post 可能被刪。
讓測試任何時候跑都沒問題
- Token 過期 — Sanctum token 預設不過期(除非手動刪除)。但如果 token 失效,需要重新登入取得新 token 更新
.env.e2e
- Post ID 硬編碼 — 目前測試依賴 post 1, 5, 6 存在。建議改成:每次測試前先建測試資料,測完刪掉(setup/teardown 模式)
- 時區問題 —
happened_at 已改用 new Date().toISOString().slice(0,10) 動態產生
長期建議
- 建一個 BE 端的
/api/test/setup 端點(只在 APP_ENV=testing 時啟用),自動建立測試資料 + 產生 token
- 或用 DB seed script:
php artisan db:seed --class=E2ETestSeeder
- CI 裡跑測試前先 seed,跑完後 cleanup
(3) 測試閉環(資料清理)
目前的問題:測試會建立通報貼文和寵物資料,但不保證每次都清乾淨。跑多次後 DB 會累積垃圾資料。
已做的清理
core-journey.spec.ts 的 Phase 5 有 test.afterAll 清理建立的通報
- 配對系統測試在建完後立即刪除測試 post
- 今天手動清理了 28 筆 test posts + 34 筆 test pets
未來改進
- 每個 spec 檔案加
test.afterAll 統一清理
- 建一個
e2e/helpers/cleanup.ts,查 DB 裡所有 contact_email LIKE '%example.com' 的資料統一刪除
- 或更好:用一個
e2e_test flag 欄位標記測試資料,清理時只刪帶 flag 的
剩餘 5 個 FE Bugs
| # | Bug | 位置 |
| #10 | 通知 toggle 寫死 disabled | ProfilePets.tsx ~260 |
| #13 | 分享協尋按鈕誤顯示在別人卡片 | MessagesCard.tsx |
| #14 | URL cityInfo 參數不被支援(地圖篩選) | PetMessages.tsx |
| #15 | 首頁週統計數字寫死 58/32 | Home.tsx ~1159 |
| #23 | 通知狀態顯示讀錯欄位 | ProfileLayout.tsx ~1157 |
環境資訊速查
| 服務 | 位置 | 備註 |
| 前端 | Vercel(自動部署 master 分支) | push 即部署 |
| 後端 | Render(自動部署 main 分支) | Free tier,有 cold start |
| 資料庫 | Neon PostgreSQL | 連線字串在 Render env |
| 聊天 | Cloudflare Worker | HMAC secret 已 rotate |
| 圖片儲存 | Cloudflare R2 | pub URL 開頭 |
| LINE | Messaging API channel | Access Token 在 Render env |
| API 文件 | /docs/api(Scramble) | 自動從程式碼產生 |
| Bug 追蹤 | Trello | 23 張卡片,18 DONE |
BE 全部修完,0 個 CRITICAL/HIGH 待修。可以安心上線,FE bugs 是體驗問題不影響核心功能。