feat(api): UDT-004 dominio + repositorio + application roles (tdd)
- Migraciones V003 (tabla Rol + 8 seeds canonicos) y V004 (drop CK + FK Usuario.Rol) - Dominio: Rol entity + 3 excepciones (RolNotFound/AlreadyExists/InUse) - Infraestructura: RolRepository (Dapper) con List/Get/ExistsActive/Add/Update/HasActiveUsuarios - Application: CRUD queries y commands (List, Get, Create, Update, Deactivate) + validators (codigo regex ^[a-z][a-z0-9_]*$) - Validator UDT-003: whitelist alineada a codigos canonicos (full IRolRepository lookup diferido a Phase 5.1) - Tests: 169 application + 15 api (todos verdes). Respawn configurado para re-seedear Rol canonical post-reset. - Estricto TDD: RED/GREEN/TRIANGULATE en todos los handlers nuevos.
This commit is contained in:
@@ -15,7 +15,7 @@ public class CreateUsuarioCommandValidatorTests
|
||||
Nombre: "Juan",
|
||||
Apellido: "Pérez",
|
||||
Email: null,
|
||||
Rol: "vendedor");
|
||||
Rol: "cajero");
|
||||
|
||||
// ── Happy paths ──────────────────────────────────────────────────────────
|
||||
|
||||
@@ -156,9 +156,13 @@ public class CreateUsuarioCommandValidatorTests
|
||||
|
||||
[Theory]
|
||||
[InlineData("admin")]
|
||||
[InlineData("vendedor")]
|
||||
[InlineData("tasador")]
|
||||
[InlineData("consulta")]
|
||||
[InlineData("cajero")]
|
||||
[InlineData("operador_ctacte")]
|
||||
[InlineData("picadora")]
|
||||
[InlineData("jefe_publicidad")]
|
||||
[InlineData("productor")]
|
||||
[InlineData("diagramacion")]
|
||||
[InlineData("reportes")]
|
||||
public void Validate_ValidRoles_NoError(string rol)
|
||||
{
|
||||
var cmd = ValidCommand() with { Rol = rol };
|
||||
|
||||
Reference in New Issue
Block a user