Live testing
SmartMoving CLI smoke tests are designed to keep CI safe and make manual release checks repeatable.
- CI uses mocked tests only.
- Do not run live tests by default.
- Live smoke tests require
SMARTMOVING_LIVE_TESTS=true. - Live smoke tests are read-only unless a maintainer creates a dedicated sandbox workflow.
smartmoving smoke writeis a dry-run command and does not call SmartMoving.- API keys must stay in environment variables and must not be pasted into issue comments, PR comments, test logs, or docs.
Local mocked verification
Section titled “Local mocked verification”From mcp-server/:
npm run buildnpm testnpm pack --dry-runThese commands must pass without a real SMARTMOVING_API_KEY.
Manual read smoke
Section titled “Manual read smoke”Use only an authorized API key:
cd mcp-servernpm run buildSMARTMOVING_API_KEY="replace-with-your-key" node dist/cli.js smoke read --jsonExpected shape:
{ "ok": true, "mode": "read", "live": false, "checks": [{ "name": "ping", "ok": true }]}Manual write dry-run smoke
Section titled “Manual write dry-run smoke”This prints a synthetic lead-create request and does not make an HTTP request:
SMARTMOVING_API_KEY="replace-with-your-key" node dist/cli.js smoke write --dry-run --jsonExpected shape:
{ "ok": true, "mode": "write", "live": false, "dryRun": true, "request": { "method": "POST", "path": "/api/premium/leads" }}Opt-in live smoke
Section titled “Opt-in live smoke”Live smoke requires an explicit environment flag and is read-only:
SMARTMOVING_LIVE_TESTS=true \SMARTMOVING_API_KEY="replace-with-your-key" \node dist/cli.js smoke live --read-only --jsonWithout SMARTMOVING_LIVE_TESTS=true, the command returns a stable LIVE_TESTS_DISABLED failure.
Never do this in CI
Section titled “Never do this in CI”- Do not run live smoke tests in GitHub Actions.
- Do not run live write or destructive smoke tests against a production SmartMoving account.
- Do not publish, tag, merge, or change repo visibility as part of smoke testing.
- Do not include real customer names, quote numbers, phone numbers, emails, addresses, or API responses in reports.