Pruebas requeridas
Alcance
Esta matriz concentra las validaciones funcionales recomendadas para los cambios recientes en:
- roles
BUSINESS,CROSS_BUSINESSyGLOBAL - permisos y modulos
BUSINESS,GLOBALyHYBRID - membresias globales sin
businessId - separacion entre negocio y
Panel de control - rutas, guards y permisos asociados
Como usarla
- Ejecuta los casos por seccion.
- Marca
EstadocomoPendiente,OK,FallooBloqueado. - Si una prueba falla, registra evidencia y modulo afectado.
Datos minimos recomendados
- Usuario A: membresia global activa con permisos globales completos.
- Usuario B: membresia global activa con permisos globales parciales.
- Usuario C: membresia de negocio activa y sin membresia global.
- Usuario D: sin membresias activas.
- Negocio 1 y Negocio 2 activos.
- Negocio 3 inactivo.
- Roles existentes de tipo
BUSINESS,CROSS_BUSINESSyGLOBAL. - Modulos y permisos con tipos
BUSINESS,GLOBALyHYBRID.
1. Autenticacion y arranque
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| AUTH-01 | Validar arranque con usuario global completo | Usuario A con membresia global ACTIVE y permisos globales validos | 1. Iniciar sesion. 2. Esperar hidratacion inicial. 3. Ir a seleccion de negocio. | Se muestra acceso a Panel de control y el usuario puede entrar al contexto global. | Alta | Pendiente |
| AUTH-02 | Validar arranque sin membresia global | Usuario C con membresia de negocio activa y sin membresia global | 1. Iniciar sesion. 2. Ir a seleccion de negocio. | No aparece acceso a Panel de control. | Alta | Pendiente |
| AUTH-03 | Validar usuario con permisos globales parciales | Usuario B con membresia global ACTIVE y permisos parciales | 1. Iniciar sesion. 2. Entrar a Panel de control. | El panel abre, pero solo muestra modulos permitidos por sus permisos. | Alta | Pendiente |
| AUTH-04 | Validar ausencia total de membresias | Usuario D sin membresias activas | 1. Iniciar sesion. | No entra a negocio ni a Panel de control; la UI refleja falta de acceso. | Alta | Pendiente |
2. Seleccion de negocio y transicion de contexto
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| CTX-01 | Mostrar boton de Panel de control en seleccion de negocio | Usuario A autenticado | 1. Ir a /admin/select-business-membership. | Aparece acceso visible a Panel de control. | Alta | Pendiente |
| CTX-02 | Ocultar Panel de control si no aplica | Usuario C autenticado | 1. Ir a /admin/select-business-membership. | No aparece acceso a Panel de control. | Alta | Pendiente |
| CTX-03 | Entrar al Panel de control desde seleccion de negocio | Usuario A autenticado | 1. Hacer clic en Panel de control. | Navega a /control-panel/home. | Alta | Pendiente |
| CTX-04 | Entrar al Panel de control desde menu superior dentro de negocio | Usuario A dentro de un negocio | 1. Abrir menu del header. 2. Hacer clic en Panel de control. | Navega a /control-panel/home sin devolver a seleccion de negocio. | Alta | Pendiente |
| CTX-05 | Salir del Panel de control | Usuario A dentro de /control-panel | 1. Abrir menu del header. 2. Hacer clic en Seleccionar negocio. | Regresa a /admin/select-business-membership. | Alta | Pendiente |
| CTX-06 | Validar limpieza del contexto de negocio | Usuario A entra al panel desde un negocio | 1. Entrar a Panel de control. 2. Revisar requests y navegacion posterior. | El panel no depende de cookie ni de businessId de negocio. | Alta | Pendiente |
3. Home y navegacion del Panel de control
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| CPH-01 | Validar cards visibles segun permisos | Usuario B con permisos parciales | 1. Entrar a /control-panel/home. | Solo aparecen cards de modulos autorizados. | Alta | Pendiente |
| CPH-02 | Validar coherencia visual del home | Usuario A autenticado | 1. Entrar a /control-panel/home. | Todas las cards tienen fondo blanco uniforme y apariencia consistente. | Media | Pendiente |
| CPH-03 | Validar iconografia consistente con sidebar | Usuario A autenticado | 1. Comparar iconos del home y del sidebar. | Los iconos coinciden visualmente con los del sidebar. | Baja | Pendiente |
| CPH-04 | Validar textos en lenguaje usuario | Usuario A autenticado | 1. Revisar cards del home. | No se muestran labels tecnicos crudos como BUSINESS, GLOBAL, HYBRID o CROSS_BUSINESS. | Media | Pendiente |
| CPH-05 | Validar header del drawer movil a 280px | Viewport de 280px de ancho | 1. Abrir Panel de control. 2. Abrir sidebar movil. | Logo, chip y boton de cierre se ven correctos, sin cortes ni solapamientos. | Media | Pendiente |
4. Usuarios globales
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| USR-01 | Listar solo usuarios globales | Usuario A con permiso de listar usuarios | 1. Ir a /control-panel/users. | El listado muestra solo usuarios con membresia sin businessId. | Alta | Pendiente |
| USR-02 | Ver detalle de usuario global | Usuario A con permiso suficiente | 1. Abrir detalle de un usuario del listado. | El detalle corresponde a la membresia global seleccionada. | Media | Pendiente |
| USR-03 | Crear membresia global | Usuario A con permiso core.memberships.create | 1. Abrir Crear membresia. 2. Seleccionar usuario. 3. Dejar businessName vacio. 4. Guardar. | Se crea membresia PENDING sin businessId. | Alta | Pendiente |
| USR-04 | Crear membresia de negocio desde Panel de control | Usuario A con permiso core.memberships.create | 1. Abrir Crear membresia. 2. Seleccionar usuario. 3. Ingresar businessName. 4. Guardar. | Se crea membresia PENDING ligada al negocio resuelto por nombre. | Alta | Pendiente |
| USR-05 | Evitar duplicado de membresia global | Usuario que ya posee membresia global | 1. Intentar crear otra membresia global. | Backend rechaza la operacion y la UI informa el error. | Alta | Pendiente |
| USR-06 | Evitar duplicado en el mismo negocio | Usuario que ya posee membresia en un negocio | 1. Intentar crear otra membresia para el mismo negocio. | Backend rechaza la operacion y la UI informa el error. | Alta | Pendiente |
5. Roles
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| ROLE-01 | Administrar roles globales y transversales desde Panel de control | Usuario A con permisos de roles | 1. Ir a /control-panel/roles. | Solo se gestionan roles GLOBAL y CROSS_BUSINESS. | Alta | Pendiente |
| ROLE-02 | Administrar roles de negocio solo en contexto negocio | Usuario con acceso a un negocio | 1. Ir a /admin/roles. | Solo se gestionan roles BUSINESS. | Alta | Pendiente |
| ROLE-03 | Filtrar permisos validos para rol global | Usuario A con permisos de edicion de roles | 1. Crear o editar rol GLOBAL. | Solo se pueden asignar permisos GLOBAL y HYBRID. | Alta | Pendiente |
| ROLE-04 | Filtrar permisos validos para rol transversal | Usuario A con permisos de edicion de roles | 1. Crear o editar rol CROSS_BUSINESS. | Solo se pueden asignar permisos BUSINESS y HYBRID. | Alta | Pendiente |
| ROLE-05 | Filtrar permisos validos para rol de negocio | Usuario con permisos de roles en un negocio | 1. Crear o editar rol BUSINESS. | Solo se pueden asignar permisos BUSINESS y HYBRID. | Alta | Pendiente |
| ROLE-06 | Persistir permisos del rol con su type | Rol editado recientemente | 1. Editar un rol. 2. Guardar. | La subcoleccion Roles/{roleId}/Permissions conserva type consistente con la coleccion maestra. | Alta | Pendiente |
6. Permisos y modulos
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| ACL-01 | Listar todos los tipos en Panel de control | Usuario A con permisos de consulta | 1. Abrir /control-panel/permissions. 2. Abrir /control-panel/modules. | Se visualizan tipos BUSINESS, GLOBAL y HYBRID. | Alta | Pendiente |
| ACL-02 | Limitar listados en negocio | Usuario con acceso a negocio | 1. Abrir paginas de permisos y modulos dentro de negocio. | Solo se visualizan elementos BUSINESS y HYBRID. | Alta | Pendiente |
| ACL-03 | Ocultar tipo en negocio | Usuario con acceso a negocio | 1. Revisar tablas de permisos y modulos en negocio. | No se muestra el chip o columna de tipo. | Media | Pendiente |
| ACL-04 | Mantener tipo visible en Panel de control | Usuario A con acceso al panel | 1. Revisar tablas de permisos y modulos del panel. | El tipo si se muestra. | Media | Pendiente |
| ACL-05 | Unificar color del tipo compartido | Usuario A con acceso al panel | 1. Revisar chips HYBRID en permisos y modulos. | Ambos usan el mismo amarillo y contraste consistente. | Baja | Pendiente |
| ACL-06 | Crear modulo desde Panel de control | Usuario A con permiso core.modules.create | 1. Abrir creacion de modulo. 2. Elegir tipo. 3. Guardar. | El modulo se crea con el tipo correcto. | Alta | Pendiente |
| ACL-07 | Eliminar modulo desde Panel de control | Usuario A con permiso core.modules.delete | 1. Eliminar un modulo permitido. | El modulo desaparece del listado y backend confirma la operacion. | Alta | Pendiente |
| ACL-08 | Crear permiso desde Panel de control | Usuario A con permiso core.permissions.create | 1. Abrir creacion de permiso. 2. Elegir tipo. 3. Guardar. | El permiso se crea con el tipo correcto. | Alta | Pendiente |
| ACL-09 | Eliminar permiso desde Panel de control | Usuario A con permiso core.permissions.delete | 1. Eliminar un permiso permitido. | El permiso desaparece del listado y backend confirma la operacion. | Alta | Pendiente |
| ACL-10 | Confirmar ausencia de CRUD de permisos y modulos en negocio | Usuario con acceso a negocio | 1. Revisar UI de permisos y modulos dentro del negocio. | No existen acciones de crear, editar o eliminar. | Alta | Pendiente |
7. Negocios y planes
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| BP-01 | Listar negocios desde Panel de control | Usuario A con core.bussinesses.list | 1. Ir a /control-panel/businesses. | Se listan negocios conforme a permisos. | Alta | Pendiente |
| BP-02 | Crear, editar y eliminar negocio con permisos globales | Usuario A con permisos completos de negocios | 1. Crear negocio. 2. Editarlo. 3. Eliminarlo. | Todas las operaciones globales funcionan segun permiso. | Alta | Pendiente |
| BP-03 | Bloquear acceso a negocios sin permiso | Usuario B sin permisos de negocios | 1. Intentar abrir /control-panel/businesses. | La UI o el guard bloquean el acceso. | Alta | Pendiente |
| BP-04 | Listar planes desde Panel de control | Usuario A con core.plan.list | 1. Ir a /control-panel/plans. | Se listan planes conforme a permisos. | Alta | Pendiente |
| BP-05 | Crear, editar y eliminar plan con permisos globales | Usuario A con permisos completos de planes | 1. Crear plan. 2. Editarlo. 3. Eliminarlo. | Todas las operaciones globales funcionan segun permiso. | Alta | Pendiente |
| BP-06 | Bloquear acceso a planes sin permiso | Usuario B sin permisos de planes | 1. Intentar abrir /control-panel/plans. | La UI o el guard bloquean el acceso. | Alta | Pendiente |
8. Membresias y operaciones sensibles
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| MEM-01 | Cambiar estado de membresia en negocio con permisos validos | Usuario autorizado dentro del negocio | 1. Ejecutar toggle-status sobre una membresia del mismo negocio. | La operacion funciona. | Alta | Pendiente |
| MEM-02 | Bloquear cambio de estado sin permiso | Usuario sin permiso suficiente | 1. Intentar toggle-status. | Backend responde error de autorizacion. | Alta | Pendiente |
| MEM-03 | Cambiar isEmployee con permisos validos | Usuario autorizado dentro del negocio | 1. Ejecutar toggle-employee. | La operacion funciona solo para membresias del negocio correspondiente. | Alta | Pendiente |
| MEM-04 | Asignar branch con permisos validos | Usuario autorizado dentro del negocio | 1. Ejecutar assign-branch. | La operacion funciona solo si la membresia pertenece a ese negocio. | Alta | Pendiente |
| MEM-05 | Asignar rol global a membresia global | Usuario A con permisos sobre membresias y roles | 1. Asignar rol a una membresia sin businessId. | Solo acepta roles GLOBAL. | Alta | Pendiente |
| MEM-06 | Asignar rol de negocio a membresia de negocio | Usuario autorizado en un negocio | 1. Asignar rol a una membresia con businessId. | Solo acepta roles BUSINESS o CROSS_BUSINESS. | Alta | Pendiente |
| MEM-07 | Bloquear mutaciones cruzadas por businessId | Usuario autenticado en negocio A | 1. Intentar mutar membresia del negocio B. | Backend rechaza la operacion. | Alta | Pendiente |
9. Rutas y guards
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| ROUTE-01 | Bloquear rutas globales sin membresia global | Usuario C sin membresia global | 1. Navegar manualmente a /control-panel/home. | Redirige fuera del panel o muestra acceso denegado. | Alta | Pendiente |
| ROUTE-02 | Bloquear rutas globales sin permiso especifico | Usuario B con acceso parcial | 1. Navegar manualmente a un modulo no permitido del panel. | Redirige a /control-panel/home o muestra acceso denegado. | Alta | Pendiente |
| ROUTE-03 | Bloquear rutas de negocio sin membresia activa de ese negocio | Usuario autenticado sin acceso al negocio consultado | 1. Navegar a una ruta privada de negocio. | Redirige a seleccion de negocio. | Alta | Pendiente |
| ROUTE-04 | Confirmar que la membresia global no sustituye membresia de negocio | Usuario A con membresia global pero sin membresia en cierto negocio | 1. Intentar entrar a ese negocio. | No obtiene acceso operativo solo por tener membresia global. | Alta | Pendiente |
10. Regresiones visuales y UX
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| UI-01 | Verificar separacion visual entre negocio y Panel de control | Usuario A con acceso a ambos contextos | 1. Entrar a negocio. 2. Entrar a panel. | Layout, navegacion y percepcion de contexto se sienten claramente distintos. | Media | Pendiente |
| UI-02 | Verificar perfil desde ambos contextos | Usuario autenticado | 1. Abrir Ver perfil desde negocio. 2. Abrir Ver perfil desde panel. | La vista funciona en ambos contextos. | Media | Pendiente |
| UI-03 | Verificar funcionamiento de cambio de negocio | Usuario con multiples negocios | 1. Cambiar de negocio. | El flujo sigue funcionando como antes del cambio. | Alta | Pendiente |
| UI-04 | Verificar que la PWA no sirva assets viejos | Entorno local o staging con build reciente | 1. Refrescar. 2. Hacer hard refresh si hace falta. | La UI refleja los cambios mas recientes sin inconsistencias. | Baja | Pendiente |
11. Seguridad manual
| ID | Objetivo | Precondicion | Pasos | Resultado esperado | Prioridad | Estado |
|---|---|---|---|---|---|---|
| SEC-01 | Confirmar eliminacion de hardcodes root | Usuario no privilegiado | 1. Intentar acceder a modulos globales sin permisos reales. | No accede por documento, email o rol quemado; solo por permisos. | Alta | Pendiente |
| SEC-02 | Confirmar 403 en endpoints globales sin permiso | Usuario autenticado sin permiso requerido | 1. Consumir endpoint global protegido. | Backend responde 403. | Alta | Pendiente |
| SEC-03 | Confirmar 403 o 400 en mutaciones cruzadas de membresias | Usuario con contexto de negocio distinto | 1. Intentar mutar membresia ajena al negocio. | Backend rechaza la solicitud. | Alta | Pendiente |