feat(f6.2): add per-act representative signing and user smtp
Android CI / RC / Android · lint, tests, debug APK, release compile (push) Failing after 1m25s
DH V2 CI / API · typecheck, tests, build (push) Successful in 34s
DH V2 CI / WEB · typecheck, build (push) Successful in 20s
Production dependency audit / API · production dependencies (push) Successful in 9s
Production dependency audit / WEB · production dependencies (push) Successful in 9s
DH V2 CI / Docker / scripts contract (push) Successful in 1m16s

This commit is contained in:
2026-09-14 15:53:55 -03:00
parent 103ecf2fae
commit 7fe59bccd2
46 changed files with 907 additions and 154 deletions
@@ -25,11 +25,11 @@ test('F3.1 amplía el perfil personal y protege email del Inspector también en
assert.match(userMigration, /trg_users_inspector_email/);
});
test('F3.1 exige email al crear o asignar el rol Inspector', () => {
assert.match(usersService, /assertInspectorHasEmail\(roles, dto\.email/);
assert.match(usersService, /assertInspectorHasEmail\(roles, before\.email\)/);
assert.match(usersService, /Los usuarios con rol Inspector deben tener un email válido/);
assert.match(usersService, /dto\.email !== undefined && !dto\.email && before\.roles\.some/);
test('F3.1 email del Inspector sigue protegido y F6.2 endurece email para todo usuario', () => {
assert.match(usersService, /USER_EMAIL_REQUIRED/);
assert.match(usersService, /Cada usuario de Hidrocarburos debe tener un email válido/);
assert.match(usersService, /if \(!dto\.email\?\.trim\(\)\) throw userEmailRequired\(\)/);
assert.match(usersService, /dto\.email !== undefined && !dto\.email/);
});
test('F3.1 dossier canónico agrega alias sin borrar identidad histórica', () => {