Se han ejecutado pruebas automatizadas (vía scripting local y consultas directas a los endpoints de la API) para certificar las operacionesCRUDcorrespondientes a la gestión deTenantsyUsuariosen la arquitectura de UMS.
Resultado Global: APROBADO (Los endpoints base funcionan y el estado es consistente. Se detectaron algunas validaciones estrictas del modelo de dominio que cumplen perfectamente con las reglas de negocio).
Todas las evidencias con los respectivos Payloads de entrada y salida, así como los Status Codes, se han generado físicamente dentro de la carpeta docs/qa/evidences/ del repositorio, vinculados a sus Historias de Usuario correspondientes.
- US-001: Create Tenant (Success) - [PASÓ] (Status 201)
- US-002: Suspend Tenant - [PASÓ] (Status 204)
- US-003: Activate Tenant - [PASÓ] (Status 204)
- US-004: Get Tenants via GraphQL - [PASÓ] (Aislamiento y consistencia de lectura)
- US-005: Create User - [PASÓ] (Status 201)
- US-006: Activate User - [PASÓ] (Status 204)
- US-007: Block User - [PASÓ] (Status 204)
- US-008: Delete User (Soft Delete / Anonymize) - [PASÓ] (Status 204)
Se verificó que los endpoints transaccionales (Comandos) requieren estrictamente el header X-User-Id (para el DevAuthMiddleware), de lo contrario rechazan la solicitud. Adicionalmente, la base de datos restringe operaciones fuera de los límites de un Tenant, garantizando la arquitectura Multi-Tenant.
- Validación de Categoría de Usuario: Al intentar inyectar usuarios con
category: "Employee"oidentityReferenceType: "EmployeeId", la API rechaza la petición con HTTP422 Unprocessable Entityy el mensaje"User category is not supported".
- Conclusión: EstoNOes un bug. Es la aplicación correcta de las reglas del dominio (
UserCategory.csyIdentityReferenceType.cs) que solo aceptanInternal,External,B2B, etc., y tiposHrId,VendorCode, etc.
- GraphQL Pagination: La query de Tenants retorna el nodo
itemscorrectamente serializado de acuerdo a la interfaz de React (como lo consumetenantService.getTenants).
Para futuros despliegues o actualizaciones de dependencias, se debe validar:
- Creación de Tenant con RUC repetido falla con 409 Conflict.
- Listado de Branches solo devuelve los de su respectivo
tenantId. - Desactivar usuario (
BlockUserAccountCommand) invalida tokens (a nivel Middleware). - El Hard-Delete está prohibido;
DeleteUserAccountanonimiza según GDPR.