Comandos
Todo lo que se puede ejecutar, para qué sirve y cuándo hace falta.
Los dos que se usan a diario
pnpm devpnpm verifyverify encadena comprobación de tipos, lint y los tests unitarios. Es lo que
hay que ejecutar antes de cada commit.
`typecheck` regenera los tipos de rutas antes de comprobarlos
Si añades una ruta y TypeScript dice que no existe, es que falta esa
regeneración. pnpm typecheck la hace por ti.
Pruebas
| Comando | Qué ejecuta | Cuándo |
|---|---|---|
pnpm test | Tests unitarios de los módulos puros | Siempre, va dentro de verify |
pnpm test:watch | Los mismos, en modo continuo | Mientras escribes un cálculo |
pnpm test:integration | Contra PostgreSQL y MinIO reales | Si tocas base de datos, almacenamiento o reglas |
pnpm test:e2e | Recorridos completos con Playwright | Antes de dar por terminado un flujo |
pnpm test:e2e:ui | Los mismos, con interfaz para depurarlos | Cuando uno falla y no sabes por qué |
Los de integración necesitan docker compose up -d y la base royalclean_test.
Los de extremo a extremo corren contra una compilación de producción, no
contra el servidor de desarrollo: es lo que de verdad se despliega, y el de
desarrollo se caía bajo la carga de la suite.
Base de datos
| Comando | Qué hace |
|---|---|
pnpm db:migrate | Crea y aplica una migración nueva. Sólo en desarrollo |
pnpm db:deploy | Aplica las migraciones pendientes. Es lo que corre en producción |
pnpm db:seed | Siembra datos de prueba. Se niega a correr en producción |
pnpm db:generate | Regenera el cliente de Prisma desde el esquema |
pnpm db:studio | Abre el explorador visual de la base |
pnpm db:reset | Borra y recrea la base. Destructivo |
`migrate dev` jamás en producción
Puede recrear la base entera. En producción se usa migrate deploy, que sólo
aplica lo pendiente y nunca destruye nada. El contenedor lo hace solo al
arrancar.
Administración
pnpm admin:create --username admin.principal --email admin@tu-dominio.comDentro del contenedor de producción, donde no hay pnpm, es el mismo script:
node scripts/create-admin.mjs --username admin.principal --email admin@tu-dominio.comCrea una cuenta de administración en producción. Pide la contraseña por entrada estándar —no se acepta por argumento, que quedaría en el historial del intérprete y en la lista de procesos— y obliga a cambiarla en el primer acceso.
Es la única vía correcta para el primer administrador de un despliegue nuevo. A partir de ahí se hace desde el panel de cuentas.
pnpm job:cleanupEjecuta el mantenimiento a mano: marca los servicios abiertos demasiado tiempo, caduca la evidencia vencida y limpia las subidas abandonadas. Es idempotente: ejecutarlo dos veces seguidas no hace daño.
Documentación
El sitio de documentación es un proyecto aparte, en apps/docs:
pnpm --filter royal-clean-docs devArranca en el puerto 3200 para no chocar con la aplicación.
pnpm --filter royal-clean-docs buildCalidad del código
| Comando | Qué hace |
|---|---|
pnpm lint | ESLint sobre todo el proyecto |
pnpm typecheck | Regenera tipos de rutas y comprueba con tsc |
pnpm build | Compilación de producción, incluida la generación de Prisma |