Skip to content

Portal smoke test ​

Chạy sau khi sửa UI portal (docs/.vitepress/theme/) hoặc gateway REST mà portal gọi.

Điều kiện ​

  • Đã đăng nhập (gw_access_token trên browser)
  • npm run docs:stack (docs :5173 + API :3001) hoặc gateway remote qua GATEWAY_PROXY_TARGET
bash
npm run theme:test
npm run test:aggregate
npm run portal:smoke   # HTTP 200 + HTML (cần docs:stack)

Checklist E2E product chat (form inline → submit → kết quả job): Product chat E2E (đã đăng nhập, docs:stack).

Overview (/vi/app/) ​

  • [ ] Hero: Open Playground, Activity, Copy token
  • [ ] Widget Usage (7 ngày) tải; recent jobs click → Explore + modal job
  • [ ] Workspace: Activity, Access token, Credits, BYOK, Files, Observability
  • [ ] Pill credits header / sidebar → /vi/app/credits/
  • [ ] Resources: Quickstart, MCP, Authentication, Portal smoke test (trang này)

Playground (/vi/app/playground/) ​

Embed full-screen — không có sidebar/header app. Xem API Playground.

  • [ ] Hero Overview Open Playground → /vi/app/playground/
  • [ ] Iframe tải (mặc định Create image); không kẹt loading
  • [ ] Đã login → playground nhận token (Connection OK / list models)
  • [ ] List models → chọn model + ratio từ catalog
  • [ ] Image job bật wait → có resultUrl / preview
  • [ ] Sau SUCCESS, chuyển REQUEST / ENDPOINTS / AI GUIDE — tab giữ nguyên (poll không kéo về RESULT)
  • [ ] URL đổi khi đổi worker (?worker=create-video, …)
  • [ ] Link Playground từ Models → ?model= điền sẵn
  • [ ] Tuỳ chọn: Observability Local mirror bật → có dòng job sau chạy

Chat (/vi/app/chat/) ​

  • [ ] Banner số dư thấp khi credits < ngưỡng
  • [ ] Hint BYOK khi gateway có model map — link Mở BYOK
  • [ ] Hint đổi khi chọn model BYOK (đã lưu provider key)
  • [ ] Model picker có badge BYOK trên model map

Product mode (mặc định) — checklist đầy đủ: Product chat E2E. Pass nhanh:

  • [ ] Intent media → form job inline + accordion Chi tiết API + chip (Nạp credits, Playground, Copy API path)
  • [ ] Intent support (còn bao nhiêu credit, affiliate) → chip portal, không form job
  • [ ] POST /gateway/chat có mediaModelContext.account mọi lượt product
  • [ ] Tự động (mock): npm run portal:browser:test -- tests/browser/chat-product-inline.spec.ts tests/browser/chat-product-intents.spec.ts

Activity (/vi/app/activity/) ​

Xem Activity hub. Kiểm tra nhanh:

  • [ ] Overview → period, Refresh, Export CSV; lỗi → Thử lại
  • [ ] Top models → Explore ?model=; tooltip cache; modal ?job= mỗi dòng
  • [ ] Trends / Explore → lỗi stats/logs → Thử lại; filter, Load more
  • [ ] Billing → bảng nạp, link Credits; ?period= sync

Access token (/vi/app/token/) ​

  • [ ] Tab curl (Gommo) hoặc MCP (Gommo); Copy token; Test connection → message xanh
  • [ ] Last activity → Activity Explore (khi có job)

Files (/vi/app/files/) ​

  • [ ] Upload → thông báo thành công; Recent uploads còn sau reload
  • [ ] Copy URL / Copy fields

BYOK (/vi/app/byok/) ​

Xem BYOK reference và BYOK production checklist. Kiểm tra nhanh:

  • [ ] Lỗi load → Thử lại; toolbar Làm mới + Activity
  • [ ] Lưu key → message xanh (không flash cả trang; chỉ Refreshing…)
  • [ ] Test / Xóa có confirm
  • [ ] Tab Usage → link Activity; badge khi đã chat BYOK

Observability (/vi/app/observability/) ​

Checklist handoff: doc/OBSERVABILITY-TEST.md (không webhook thanh toán — nạp tiền dùng Credits). Kiểm tra nhanh:

  • [ ] Toolbar Làm mới; lỗi stats → Thử lại
  • [ ] Stat cards → Activity / Credits; link Available mở được
  • [ ] Toggle Local session mirror (tuỳ chọn)
  • [ ] Bỏ qua mục Webhooks trên trang khi demo sếp

Credits (/vi/app/credits/) ​

Xem Billing & credits. Kiểm tra nhanh:

  • [ ] Banner số dư thấp khi credits < ngưỡng
  • [ ] KPI: số dư, tổng đã nạp, số đơn, đơn gần nhất
  • [ ] Quick links → Activity Billing, Job logs, Overview, Billing docs
  • [ ] Gói nạp: gói featured accent, còn lại primary; modal checkout
  • [ ] Bảng lịch sử nạp; toggle đơn chờ cũ; Làm mới header reload gói + đơn

Profile (/vi/app/profile/) ​

  • [ ] Pill 7d; link Activity cùng period
  • [ ] Recent jobs → modal job Explore

Tự động ​

bash
npm run theme:test
npm run test:aggregate
npm run portal:smoke
node scripts/verify-request-tab.mjs   # pin tab Playground (cần docs:stack)
npm run observability:verify-background   # job async + webhook live (cần token trong .env)