Tests
- Full testing kit (suites, live, Docker): Testing
- Public release gate: Full Release Validation
-
pnpm test:fast: Runs the unit suite throughvitest.unit.config.ts. Use this as the quick local gate for code that does not need Docker, live providers, or browser/UI coverage. -
pnpm test:force: Kills any lingering gateway process holding the default control port, then runs the full Vitest suite with an isolated gateway port so server tests don’t collide with a running instance. Use this when a prior gateway run left port 18789 occupied. -
pnpm test:coverage: Runs the unit suite with V8 coverage (viavitest.unit.config.ts). Global thresholds are 70% lines/branches/functions/statements. Coverage excludes integration-heavy entrypoints (CLI wiring, gateway/telegram bridges, webchat static server) to keep the target focused on unit-testable logic. -
pnpm teston Node 24+: Fased auto-disables VitestvmForksand usesforksto avoidERR_VM_MODULE_LINK_FAILURE/module is already linked. You can force behavior withFASED_TEST_VM_FORKS=0|1. -
pnpm test:e2e: Runs gateway end-to-end smoke tests (multi-instance WS/HTTP/node pairing). Defaults tovmForks+ adaptive workers invitest.e2e.config.ts; tune withFASED_E2E_WORKERS=<n>and setFASED_E2E_VERBOSE=1for verbose logs. -
pnpm test:ui: Runs the Control UI test suite after the raw-window-open lint guard. -
pnpm test:smoke:agent-flow: Runs the composite Provider -> Agent -> Skill -> Chat -> Task -> Memory -> Channel delivery smoke lane. -
pnpm test:live: Runs provider live tests (minimax/zai). Requires API keys andLIVE=1(or provider-specific*_LIVE_TEST=1) to unskip.
Local PR gate
For local PR land/gate checks, run:pnpm checkpnpm buildpnpm testpnpm check:docs
pnpm test flakes on a loaded host, rerun once before treating it as a regression, then isolate with pnpm vitest run <path/to/test>. For memory-constrained hosts, use:
FASED_TEST_PROFILE=low FASED_TEST_SERIAL_GATEWAY=1 pnpm test
Model latency bench (local keys)
Script:scripts/bench-model.ts
Usage:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- Optional env:
MINIMAX_API_KEY,MINIMAX_BASE_URL,MINIMAX_MODEL,ANTHROPIC_API_KEY - Default prompt: “Reply with a single word: ok. No punctuation or extra text.”
Onboarding E2E (Docker)
Docker is optional; this is only needed for containerized onboarding smoke tests. Full cold-start flow in a clean Linux container:fased health.
QR import smoke (Docker)
Ensuresqrcode-terminal loads under Node 22+ in Docker: