Tests

  • Bộ test đầy đủ (suites, live, Docker): Testing

  • pnpm test:force: Tắt các tiến trình Gateway còn sót lại đang giữ cổng điều khiển mặc định, sau đó chạy toàn bộ test suite Vitest với cổng Gateway riêng biệt để các test server không xung đột với instance đang chạy. Dùng lệnh này khi Gateway chạy trước đó để cổng 18789 bị chiếm.

  • pnpm test:coverage: Chạy Vitest với V8 coverage. Ngưỡng toàn cục là 70% lines/branches/functions/statements. Coverage loại trừ các entrypoint tích hợp nặng (CLI wiring, gateway/telegram bridges, webchat static server) để tập trung vào logic có thể unit-test được.

  • pnpm test:e2e: Chạy các smoke test end-to-end của Gateway (multi-instance WS/HTTP/node pairing).

  • pnpm test:live: Chạy các live test của Provider (minimax/zai). Cần API keys và LIVE=1 (hoặc *_LIVE_TEST=1 theo từng provider) để unskip.

Model latency bench (local keys)

Script: scripts/bench-model.ts

Cách dùng:

  • source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10
  • Env tùy chọn: MINIMAX_API_KEY, MINIMAX_BASE_URL, MINIMAX_MODEL, ANTHROPIC_API_KEY
  • Prompt mặc định: “Reply with a single word: ok. No punctuation or extra text.”

Lần chạy gần nhất (31/12/2025, 20 runs):

  • minimax median 1279ms (min 1114, max 2431)
  • opus median 2454ms (min 1224, max 3170)

Onboarding E2E (Docker)

Docker là tùy chọn; chỉ cần khi chạy smoke test onboarding trong container.

Flow cold-start đầy đủ trong Linux container sạch:

scripts/e2e/onboard-docker.sh

Script này điều khiển wizard tương tác qua pseudo-tty, xác minh các file config/workspace/session, sau đó khởi động Gateway và chạy openclaw health.

QR import smoke (Docker)

Đảm bảo qrcode-terminal load được dưới Node 22+ trong Docker:

pnpm test:docker:qr