El proyecto usa Vitest como framework de testing. Todos los tests corren en Node sin necesidad de tener el gateway de OpenClaw activo ni una API key real — las llamadas HTTP se mockean con vi.spyOn(globalThis, "fetch").
pnpm testDebería mostrar 11 archivos y 65 tests pasando.
pnpm test tests/trades.test.ts
pnpm test tests/operations.test.ts
pnpm test tests/plugin.test.tspnpm exec vitestVitest queda escuchando cambios y re-ejecuta los tests afectados automáticamente.
pnpm typecheckUsa tsc --noEmit. Debe terminar sin errores antes de hacer build.
| Archivo | Qué valida |
|---|---|
plugin.test.ts |
Registro correcto de las 11 herramientas, hooks de aprobación para trades y operations, cierre sobre pluginConfig |
client.test.ts |
GET/POST con headers, query params, base URL y manejo de errores HTTP |
balance.test.ts |
wallbit_get_checking_balance y wallbit_get_stocks_balance |
transactions.test.ts |
Filtros, paginación y tipos de wallbit_get_transactions |
assets.test.ts |
Listado y búsqueda de wallbit_list_assets, detalle por símbolo en wallbit_get_asset |
wallets.test.ts |
Filtros de currency y network en wallbit_get_wallets |
account-details.test.ts |
Parámetros country/currency en wallbit_get_account_details |
rates.test.ts |
Par de divisas en wallbit_get_exchange_rate |
fees.test.ts |
Tipo de operación en wallbit_get_fees |
trades.test.ts |
Parámetros, error mapping y diálogo de aprobación en wallbit_create_trade |
operations.test.ts |
Validación from !== to, error mapping y diálogo de aprobación en wallbit_create_operation |
El suite test:live hace llamadas reales contra https://api.dev.wallbit.io/api/public/v1 usando una API key válida. No requiere variables de entorno — la key se pasa directo como argumento:
pnpm test:live -- --api-key=tu-api-key-de-devCubre los 9 endpoints de solo lectura:
| Test | Endpoint |
|---|---|
| checking balance | GET /balance/checking |
| stocks balance | GET /balance/stocks |
| transactions | GET /transactions |
| list assets | GET /assets |
| get asset AAPL | GET /assets/AAPL |
| exchange rate USD → ARS | GET /rates |
| wallets | GET /wallets |
| account details | GET /account-details |
| fees TRADE | POST /fees |
wallbit_create_trade y wallbit_create_operation están excluidos intencionalmente — ejecutan órdenes reales y mueven fondos.
Si la key es inválida o el ambiente de dev está caído, los tests fallan con el mensaje de error de la API en lugar de un falso positivo.
pnpm typecheck # sin errores de tipos
pnpm test # 65/65 tests en verde
pnpm build # dist/index.js generado correctamentePrimera vez en un equipo nuevo: después de
pnpm installhay que aprobar los scripts de instalación de las dependencias nativas una sola vez (pnpm 11+):pnpm approve-builds esbuild koffi openclaw protobufjs tree-sitter-bash @google/genaiEsto escribe
pnpm-workspace.yamlcon las aprobaciones y no hace falta repetirlo.