Royal Clean CRM · Documentación
Desarrollo

Comandos

Todo lo que se puede ejecutar, para qué sirve y cuándo hace falta.

Los dos que se usan a diario

pnpm dev
pnpm verify

verify 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

ComandoQué ejecutaCuándo
pnpm testTests unitarios de los módulos purosSiempre, va dentro de verify
pnpm test:watchLos mismos, en modo continuoMientras escribes un cálculo
pnpm test:integrationContra PostgreSQL y MinIO realesSi tocas base de datos, almacenamiento o reglas
pnpm test:e2eRecorridos completos con PlaywrightAntes de dar por terminado un flujo
pnpm test:e2e:uiLos mismos, con interfaz para depurarlosCuando 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

ComandoQué hace
pnpm db:migrateCrea y aplica una migración nueva. Sólo en desarrollo
pnpm db:deployAplica las migraciones pendientes. Es lo que corre en producción
pnpm db:seedSiembra datos de prueba. Se niega a correr en producción
pnpm db:generateRegenera el cliente de Prisma desde el esquema
pnpm db:studioAbre el explorador visual de la base
pnpm db:resetBorra 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.com

Dentro 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.com

Crea 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:cleanup

Ejecuta 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 dev

Arranca en el puerto 3200 para no chocar con la aplicación.

pnpm --filter royal-clean-docs build

Calidad del código

ComandoQué hace
pnpm lintESLint sobre todo el proyecto
pnpm typecheckRegenera tipos de rutas y comprueba con tsc
pnpm buildCompilación de producción, incluida la generación de Prisma

On this page