Manual de pruebas — ArcorTruck BackOffice Web

Guía operativa QA del prototipo

Manual de pruebas — ArcorTruck BackOffice Web (prototipo)

Este documento es la guía operativa para probar la aplicación actual frente al alcance definido en functional_analisys.html (misma carpeta). El manual de usuario en PDF (docs/manual/Manual_BackOffice Web_Truck_v2.pdf) sigue siendo la fuente formal de negocio; aquí sólo describimos cómo reproducir comportamientos en este repositorio.


Qué incluye esta versión (y qué no)

Estado Alcance
Implementado como producto usable Inicio/cierre de sesión con JWT en cliente, alta de usuarios opcional, rutas navegables, shell con menú y ejemplos de datos live contra la API.
Implementado como prototipo UI / mock local La mayor parte de pantallas de reportes, preparación de datos móvil, tableros, mapa y configuración técnica: sirven para demostrar flujos y textos funcionales, no para operar contra ERP ni mapas reales.
Fuera de alcance aquí Multi-tenant por subdominio, Google Maps integrado, colas de trabajo con trazabilidad, export Excel/PDF, OIDC institucional, cifrado de secretos productivo completo.

Glosario breve

Término Significado para las pruebas
Hoja de reparto Número lógico de agrupación de visitas/ruta del día (aparece en filtros mock y en datos demo EF).
Preparar datos Generación de paquetes para equipos móviles — en prototipo sólo hay mensajes locales tras pulsar botones.
Proceso único diario Flag relacionado con cambios en sistemas externos (manual: América): en prototipo aparece como casilla que modifica el texto del “job” simulado.
Ruta SPA Navegación por fragmento #/… (compatible con Vite detrás del proxy y con nginx try_files).

Preparación del entorno

Desarrollo (API + SPA)

  1. Base SQL Server accesible con la cadena de src/GoTruckBackoffice.Api/appsettings.json (p. ej. contenedor Docker en localhost,14333 según docker-compose.yml en la raíz del repo).
  2. API: desde src/GoTruckBackoffice.Api ejecutar dotnet run. Al arrancar aplican migraciones y se garantiza el usuario sembrado admin.
  3. Web: desde src/Web, npm install y npm run dev → normalmente http://localhost:5173. Las peticiones a /api se proxifican en vite.config.ts hacia http://127.0.0.1:5000.

Sólo Docker Compose

Desde la raíz del proyecto: docker compose up --build.

Servicio URL típica Notas
API http://localhost:5000 Incluye Swagger en /swagger.
Frontend http://localhost:3000 Nginx enlaza /api/* al contenedor API.

Autenticación y seguridad

Credencial de demo

Usuario Contraseña Origen
admin admin Creado en la primera corrida migrada si aún no existía ese nombre de usuario (hash BCrypt en base).

Otros usuarios se pueden crear desde #/registro (clave mínima cuatro caracteres). Usuario repetido produce error de conflicto con mensaje explícito.

Comportamiento esperado · UC-01 y UC-02

Pruebas API rápidas (Swagger)

Abrir http://localhost:5000/swagger (o el mismo host donde expongas la API).

  1. POST /api/auth/login · cuerpo {"usuario":"admin","clave":"admin"} → 200 y campo token.
  2. Pulsa Authorize, escheme Bearer, pega el JWT.
  3. GET /api/auth/me → 200.
  4. GET /api/dashboard/summary sin Bearer → 401.
  5. GET /api/health → sin autenticación (uso típico: salud/containers).

Mapa rápido: pantallas y casos de uso

Las rutas asumen # al principio cuando la app está en el navegador.

Pantalla #/… Casos de uso cubiertos (referencia funcional)
login UC-01
registro Alta de usuario (fuera del manual v2 pero útil QA)
inicio UC-03 (atajos desde el centro)
reparto Ítem de menú no detallado en el PDF índice (placeholder)
administracion-movil UC-04, UC-05, UC-06
reportes/reparto-por-hoja UC-07
reportes/devoluciones-por-hoja UC-08
reportes/cobranzas-por-hoja UC-09
reportes/cobranzas-general UC-10
reportes/desempeno UC-11
reportes/estadistico-entrega UC-12
tableros/avance-reparto UC-13
mapas/reparto UC-14, UC-15
configuracion/backoffice UC-16
datos-demo Smoke técnico: tablas reales desde API autenticada

Cómo validar cada flujo principal

Los pasos están pensados como lista de chequeo QA. Para cada ítem marca: “visto en UI”, “API OK si aplica”, “pendiente backlog” si el prototipo sólo muestra texto.

1. Sesión (UC-01, UC-02)

  1. Abrir la SPA sin estar logueado.
  2. Comprobar pantalla login: campos Usuario / Clave, tabulación usable, enlaces claros.
  3. Ingresar admin / admin: debe mostrarse el shell (menú + cabecera) y llegar al inicio o a la última URL que pediste antes del login.
  4. Ejecutar Logout: debe volver a #/login y las peticiones siguientes sin token deben fallar donde la API está protegida.

2. Pantalla principal (UC-03)

  1. Tras iniciar sesión, ir a #/inicio.
  2. Verificar Menú lateral con entradas alineadas a Reparto · Administración móvil · Reportes · Tableros · Mapas · Configuración (+ enlace opcional Datos demo).
  3. Verificar que las tarjetas del centro abren rutas coherentes sin recarga duradera fuera del fragmento SPA.
  4. Navegar por el mismo módulo desde menú lateral y desde atajo para comprobar coherencia de destino.

3. Administración móvil (UC-04, UC-05, UC-06)

  1. Ir #/administracion-movil.
  2. UC-04 · Generar todos: pulse y confirme que aparece texto de trabajo simulado (no hay servidor de colas en esta build).
  3. UC-05 · Generar un repartidor: sin elegir persona → mensaje de validación simple; con repartidor → mensaje OK simulado.
  4. UC-06 · checkbox Proceso único diario: marca opcional y repita generación → el texto de confirmación debe reflejar sí/no del flag para demostrar intención de negocio.

4. Bloque Reportes (UC-07 … UC-12)

Para #/reportes/* repetir el mismo ritual en cada página:

  1. Leer texto de filtros respecto del análisis (repartidor, hoja, tipo, desde/hasta, canal si aplica).
  2. Ejecutar el botón de demo de tabla/generación donde exista — valida navegabilidad de la UI, no datos de negocio reales.
  3. Anote como pendiente oficial: ordenación servidor, selección persistente en URL, Export Excel/impresión (UC pide ambos en producción futura).

Rutas concretas: reparto-por-hoja, devoluciones-por-hoja, cobranzas-por-hoja, cobranzas-general, desempeno, estadistico-entrega.

5. Tablero (UC-13)

#/tableros/avance-reparto — tabla de muestra de columnas de avance (% visita, contadores simples). Búsqueda mock presente pero sin efecto garantizado hasta backlog.

6. Mapa (UC-14, UC-15)

#/mapas/reparto — revisar filtros listados conforme UC-14 y bloque grande marcador/map placeholder. UC-15 (tooltip al clic sobre punto) pendiente hasta integración con mapa JS y modelo de marca.

7. Configuración BackOffice — técnico (UC-16)

#/configuracion/backoffice — revise que existan placeholders de configuración aplicación externa / BD externa / key Maps conforme texto funcional.

Ningún secreto debe persistirse desde el navegador; el botón de guardado en prototipo queda deliberadamente deshabilitado o sin backend.

8. Smoke de integración #/datos-demo

  1. Con JWT válido, la vista debe poblar KPIs/tablas mediante servicios EF contra SQL (repartidores, clientes, hojas).
  2. Si falla red o SQL está caído, aparece mensaje legible según cliente HTTP.

Incidentes típicos al probar

Síntoma Qué revisar
401 tras login en vistas de datos Token expirado, re-login; JWT en appsettings.json · sección Jwt (clave ≥ 32 caracteres).
Login OK pero SPA no carga tablas dev dotnet run en 5000; proxy Vite /api; en Docker usar host 3000 y no mezclar origen equivocado sin CORS.
Migraciones no aplicadas / sin tabla usuarios Revisá logs arranque API; ejecutá manual dotnet ef database update en el proyecto API si necesitás reproducir sólo DDL.

Trazabilidad documental


Última redacción unificada del manual operativo QA del prototipo; actualizar rutas puertos si el despliegue corporativo cambia.