fix(sprint-17 backend): JwtPropagationFilterTest pur Mockito + revert DevServices global trop agressif

- Refactor JwtPropagationFilterTest : @QuarkusTest → pur Mockito (instanciation directe + champ securityIdentity injecté par réflexion). 9 tests en 2s vs boot Quarkus complet.
- Fusion de JwtPropagationFilterNullIdentityTest dans le test principal (branche securityIdentity == null couverte via setAccessible).
- Revert quarkus.devservices.enabled=false (global trop agressif, violait la règle 'ne pas appauvrir pour fixer').
- Conserve quarkus.keycloak.devservices.enabled=false (légitime : OIDC tenant-enabled=false ⇒ KC inutile).
- Documente la dette H2 → Testcontainers (JSONB/RLS/fonctions PG masqués) inline + memory dédiée.
This commit is contained in:
dahoud
2026-04-25 18:25:40 +00:00
parent 07302f2743
commit 5cc38068d0
3 changed files with 89 additions and 109 deletions

View File

@@ -23,13 +23,21 @@ quarkus.flyway.baseline-on-migrate=false
# Configuration Keycloak pour tests (désactivé)
quarkus.oidc.tenant-enabled=false
quarkus.keycloak.policy-enforcer.enabled=false
# Désactivation globale de TOUS les DevServices en mode test :
# - DataSource : H2 in-memory configuré en dur (pas besoin de Postgres DevService)
# - Keycloak : OIDC désactivé (pas besoin de container KC, qui prenait 50s+ à boot)
# Dev mode (mvn quarkus:dev) : DevServices restent actifs (utiles).
quarkus.devservices.enabled=false
# Keycloak DevService désactivé : OIDC tenant-enabled=false ⇒ aucun besoin de KC en test.
# (Évite le démarrage d'un container KC parasite de 50s+ ignorant l'instance locale 8180.)
# NB : on NE désactive PAS quarkus.devservices.enabled globalement — laisse le mécanisme
# disponible si un futur test active un Postgres Testcontainer (cf. dette H2→Testcontainers).
quarkus.keycloak.devservices.enabled=false
# DETTE TECHNIQUE — H2 vs Postgres réel
# Les tests utilisent H2 en mode PostgreSQL pour rapidité, mais le projet utilise massivement :
# - JSONB (audit_trail, payload_jsonb, etc.) → mappé en VARCHAR sur H2 (faux positif possible)
# - RLS (Row Level Security PostgreSQL) → non supporté par H2
# - Fonctions PG natives (gen_random_uuid, citext, etc.) → comportement divergent
# TODO sprint dédié : migrer vers Testcontainers Postgres avec reuse
# (testcontainers.reuse.enable=true) pour fidélité prod + démarrage rapide après warm-up.
# Cf. memory : project_test_infrastructure_debt.md
# Configuration HTTP pour tests
quarkus.http.port=0
quarkus.http.test-port=0