5.2 KiB
5.2 KiB
Seed Verification Guide (Staging)
Service Startup (Local)
- Backend:
go run ./backend/main.go serve(defaulthttp://localhost:8080). - Portal frontend:
npm -C frontend/portal installthennpm -C frontend/portal run dev(defaulthttp://localhost:5174, remote usehttp://10.1.1.104:5174). - Superadmin frontend:
npm -C frontend/superadmin installthennpm -C frontend/superadmin run dev(defaulthttp://localhost:5173, remote usehttp://10.1.1.104:5173). - Portal dev server proxies
/v1tohttp://localhost:8080(frontend/portal/vite.config.js). - Superadmin dev server proxies
/super/v1and/v1tohttp://localhost:8080(frontend/superadmin/vite.config.mjs).
Chrome DevTools MCP
- Chrome remote debugging已由远程机器启动,无需本机手动启动浏览器。
- Use MCP to connect at
http://10.1.1.104:9222(SSH forwarded DevTools port). - Open target URLs via MCP and run page-level assertions (no API-level calls required).
AI Auto-Handling Prereqs
- Seed 检查/执行
- DB 查询(示例):
SELECT COUNT(*) FROM tenants; - 若结果为 0,执行
go run ./backend/main.go seed后再继续。
- DB 查询(示例):
- tenantCode 获取
- DB 查询:
SELECT code FROM tenants ORDER BY id DESC LIMIT 1; - 将结果注入到 Portal URL
/t/:tenantCode。
- DB 查询:
- 清理浏览器存储
- 在 MCP 中执行脚本:清理
localStorage/sessionStorage,并清除 cookies。 - 示例:
chrome-devtools_evaluate_script→() => { localStorage.clear(); sessionStorage.clear(); document.cookie.split(';').forEach(c => document.cookie = c.replace(/^ +/, '').replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/')); }
- 在 MCP 中执行脚本:清理
MCP Example Flow (AI Guidance)
-
Open Portal Home
chrome-devtools_new_page→http://10.1.1.104:5174/t/:tenantCodechrome-devtools_wait_fortext:探索戏曲or page title
-
Portal Login
- Navigate to
/t/:tenantCode/auth/login - Tick checkbox
#terms(required) chrome-devtools_fillphone input with13800138000- Click
获取验证码, wait for OTP step chrome-devtools_fillOTP input with1234- Click
登录 / 注册 chrome-devtools_wait_fortext:个人中心or user nickname
- Navigate to
-
Verify Orders & Library
- Navigate to
/t/:tenantCode/me/ordersand assert at least 1 row - Navigate to
/t/:tenantCode/me/libraryand assert at least 1 item
- Navigate to
-
Open Content Detail
- From home list, click the first content card
- Assert detail page loads and cover/media is visible
-
Superadmin Login
chrome-devtools_new_page→http://10.1.1.104:5173/super/auth/login- Fill
#usernamewithsuperadminand#password1withsuperadmin123 - Click
Sign In - Wait for dashboard cards or
Dashboardtext
-
Superadmin Lists
/super/superadmin/orders→ verify flagged order badge/super/superadmin/finance→ verify ledger table row/super/superadmin/notifications→ verify template rows
-
Console/Error Checks
- After each page, call
chrome-devtools_list_console_messagesand fail onerrorentries. - Use
chrome-devtools_take_snapshotto locate table rows by text.
- After each page, call
Run Seed
- Execute
go run ./backend/main.go seed. - Ensure no panics; capture console output for troubleshooting.
Data Validation (DB/Logs)
- Users: verify
creator,test,superadmin,negativeexist inusers.username. - Tenant: read
tenants.codeto obtaintenantCode(example:SELECT code FROM tenants ORDER BY id DESC LIMIT 1;). - Memberships:
tenant_usersincludescreatorastenant_admin,testasmember. - Orders:
ordershascontent_purchase+withdrawal, plus flagged/reconciled records. - Ledger:
tenant_ledgershas at least one row. - Templates:
notification_templatescontains order/audit/interaction types.
Portal Smoke (Use tenantCode)
- Tenant code: query DB (
SELECT code FROM tenants ORDER BY id DESC LIMIT 1;), then openhttp://10.1.1.104:5174/t/:tenantCode.- Login: OTP is fixed to1234(seebackend/app/services/user.go). - Home:
/t/:tenantCodelists content. - Detail: open any content detail; cover and main asset render.
- Login: sign in as
test(phone13800138000, OTP1234) and open/t/:tenantCode/me. - Orders & Library:
/t/:tenantCode/me/ordersand/t/:tenantCode/me/libraryshow data. - Likes/Favorites: content detail shows prefilled like/favorite; toggle to confirm.
- Notifications:
/t/:tenantCode/me/notificationsshows unread items.
Superadmin Smoke
- Open
http://localhost:5173/super/auth/login. - Login:
superadmin/superadmin123. - Users: list includes
negative; balance anomaly list returns result. - Orders: list includes flagged/reconciled and refund orders.
- Withdrawals: list contains
created/paid/failedstatuses. - Finance: ledger list has data; order anomaly list returns missing paid/refund items.
- Content/Reports: content list is populated; report list has pending item.
- Templates: order/audit/interaction templates present.
- System Configs:
site_nameandsupport_emailpresent.
Manual-Only Coverage
- Upload flow (init/part/complete) requires real storage integration; seed only preloads assets.