WELIFE Docs Swagger Admin Web

Functional Audit — Final Status

Date: 2026-08-06

Overall verdict

Domain: TOOLING + FUNCTIONAL
WP: WP-FUNCTIONAL-AUDIT-01

Implementation Inventory: 354 IMP / 0 STUB
Functional Tags: 40
Agent Queue: EMPTY
Core Smoke Chain: 57 PASS / 0 FAIL
Extra Domain Audit: 46 PASS / 0 FAIL
Environment: PASS
Infrastructure: PASS
Core Local API: STABLE
Application Regression: NO
Production Readiness: PARTIAL
Final Status: COMPLETE_WITH_EXTERNAL_BLOCKERS

Gates

Gate Result
npm run audit:refresh PASS — 354 IMP · 0 STUB · 40 tags · queue empty
npm run env:check PASS WITH WARNING — Google Client ID còn placeholder
API health PASS
Dependency health PASS — PostgreSQL · Redis · MinIO
npm run smoke:chain PASS — 57/57
Extra domain audit PASS — 46/46

Functional coverage

Smoke chain đã xác nhận các domain core:

Auth Email OTP
Users
Places
ATM / Fuel
Routing
Media
Addresses
Wallet
FNB cart / order
Ride quote / cancel
Driver trip
Partner staff
Parking

Extra audit đã probe:

Hotels
Rentals
Charging
Transit
Medical
Pharmacy
Schools
Home services
Delivery
Bills
QR
Social
Assistant
Favorites
Notifications
Promotions
CMS
Support
KYC
Payments
Chat
Reviews
Wallet
ATM / Fuel / Parking
FNB
Routing
Health

Kết quả:

Core smoke: 57 PASS / 0 FAIL
Extra audit: 46 PASS / 0 FAIL
Total observed checks: 103 PASS / 0 FAIL

Items requiring corrected classification

Google OAuth

Implementation: PREPARED
Configuration Guard: PASS
GOOGLE_CLIENT_ID: PLACEHOLDER
Real Google Token Verification: NOT TESTED
Real OAuth Login: OWNER_REQUIRED
Application Failure: NO

HTTP 400 khi Client ID còn placeholder chỉ chứng minh configuration guard hoạt động. Không được ghi là Google token giả đã được verifier từ chối thành công nếu request chưa đi tới bước verify token bằng audience hợp lệ.

OWNER cần cung cấp Google Web OAuth Client ID thật dạng:

*.apps.googleusercontent.com

Routing providers

Directions Endpoint: PASS
Fallback Routing: PASS
OSRM Provider: PARTIAL / BLOCKED_EXTERNAL
Mapbox Provider: PARTIAL / BLOCKED_EXTERNAL
Current Fallback: Haversine
Application Failure: NO

Endpoint routing vẫn hoạt động, nhưng kết quả hiện tại chưa xác nhận OSRM hoặc Mapbox thật. Haversine chỉ là fallback ước lượng và không tương đương route theo mạng lưới đường thực tế.

Driver and partner registration

driver.register: HTTP 400 — account already registered
partner.onboarding: HTTP 400 — account already registered
Smoke Chain Overall: PASS

Đây không phải lỗi core nếu fixture đã tồn tại. Tuy nhiên, script smoke nên được harden để chạy lặp lại ổn định bằng một trong các cách:

Tạo định danh test duy nhất cho mỗi lần chạy
Dọn fixture đúng phạm vi trước test
Hoặc chấp nhận explicit ALREADY_EXISTS như expected result

Không nên coi mọi HTTP 400 là soft PASS nếu chưa kiểm tra đúng error code hoặc business message.

Chat

Chat HTTP/API Probe: PASS
Socket.IO Transport Presence: PASS nếu đã probe handshake
Authenticated Realtime Chat E2E: NOT CONFIRMED

Việc domain Chat xuất hiện trong extra audit không tự động chứng minh kết nối realtime có JWT, join room, gửi tin, nhận tin và persistence đều PASS.

Payments

Payment Domain Probe: PASS
Wallet Transfer: PASS
Live MoMo/VNPay: NOT TESTED
Live Payment Credentials: OWNER_REQUIRED

Không dùng kết quả probe payment nội bộ để kết luận thanh toán tiền thật đã sẵn sàng.

Metro clarification

Metro :8081: RUNNING
Browser response: Manifest / development payload
Web application result: NOT APPLICABLE
Device / Expo Go: NOT OPENED

Metro không phải web app thông thường. Mở cổng Metro trong Chrome không phải một functional mobile test.

Remaining work packages

WP-SMOKE-IDEMPOTENCY-01

Status: IMP (2026-08-06)

driver.register → 409 DRIVER_ALREADY_REGISTERED (re-run PASS)
partner.onboarding → 409 PARTNER_ALREADY_REGISTERED (re-run PASS)
Smoke: chỉ accept explicit code — không soft-PASS mọi HTTP 400
JSON: errorCode + businessReason
smoke:chain 57/57 PASS · avgCompleteness 100

Mục tiêu (đã đạt):

Làm driver.register và partner.onboarding chạy lặp lại ổn định
Phân biệt expected duplicate với validation failure thật
Không bỏ qua HTTP 400 chung chung
Xuất error code và business reason vào JSON result

WP-CHAT-AUTH-E2E-01

Mục tiêu:

Lấy JWT bằng Email OTP API
Kết nối socket.io-client tới namespace /chat
Xác nhận authentication
Join room
Gửi message
Nhận acknowledgement/event
Kiểm tra persistence nếu có
Disconnect và cleanup
Không cần emulator/device

WP-ROUTING-PROVIDER-01

Mục tiêu:

Kiểm tra OSRM URL, timeout, DNS và network
Kiểm tra Mapbox token/config nếu provider được bật
Phân biệt provider result với Haversine fallback
Thêm providerUsed vào response hoặc test evidence
Không bịa Mapbox credential

WP-AUTH-GOOGLE-LIVE-01

Trạng thái:

OWNER_REQUIRED

Chỉ thực hiện sau khi có Google Web OAuth Client ID thật.

Artifact status

docs/SMOKE-CHAIN-RESULT.json: PRESENT
docs/reports/FUNCTIONAL-EXTRA-AUDIT.json: PRESENT
docs/reports/FUNCTIONAL-AUDIT-2026-08-06.md: PRESENT (this file)
docs/references/imp-stub-audit.json: PRESENT
docs/references/agent-work-queue.json: PRESENT

Liên kết mục lục:

Final classification

IMPLEMENTATION COVERAGE: PASS
STUB COVERAGE: PASS — 0 STUB
CORE FUNCTIONAL API: PASS
EXTRA DOMAIN API PROBES: PASS
LOCAL INFRASTRUCTURE: PASS
ENVIRONMENT: PASS WITH OWNER WARNING
ROUTING EXTERNAL PROVIDERS: PARTIAL
GOOGLE REAL OAUTH: OWNER_REQUIRED
LIVE PAYMENT: OWNER_REQUIRED / NOT TESTED
AUTHENTICATED CHAT REALTIME: NOT CONFIRMED
DEVICE / EMULATOR: NOT TESTED
LOCAL DEVELOPMENT READINESS: PASS
PRODUCTION READINESS: PARTIAL
APPLICATION REGRESSION: NO