Suite à observation que le précédent fix ciblé `quarkus.keycloak.devservices.enabled=false`
n'empêchait pas le démarrage du container KC (probablement timing build-time vs runtime).
Mode test :
- DataSource : H2 in-memory (lignes 5-8 application-test.properties — pas de Postgres needed)
- OIDC : tenant-enabled=false (pas de KC needed)
Conclusion : aucun DevService nécessaire en test → désactivation globale via
`quarkus.devservices.enabled=false` (couvre tous les services) + garde
`quarkus.keycloak.devservices.enabled=false` en sécurité.
Bénéfice : tests démarrent en 5-10s au lieu de 1-3min (boot containers KC + ryuk).
Mode `quarkus:dev` reste full DevServices (logique, on a besoin de KC en dev).
Erreur observée :
ERROR [io.qu.de.ke.KeycloakDevServicesProcessor] Admin token can not be acquired
due to a client connection timeout
(~50s boot Docker + timeouts admin token)
Cause : @QuarkusTest charge application-test.properties qui désactive OIDC
(tenant-enabled=false), mais l'extension quarkus-keycloak-* déclenche quand même
le DevService Keycloak qui télécharge/démarre un container KC 26.3.4 et tente
d'obtenir un admin token — qui timeout.
Fix non-appauvrissant : désactiver UNIQUEMENT le DevService KC en mode test.
- Dev mode : DevServices KC reste actif (utile pour quarkus:dev)
- Test mode : OIDC déjà désactivé → KC DevServices = pure perte de temps de boot
- Postgres DevServices reste actif (Hibernate a besoin d'une DB pour les tests JPA)
Ajout :
quarkus.keycloak.devservices.enabled=false (test-only via application-test.properties)
3 fixes pour build dev mode propre :
1. Qute @CheckedTemplate (EmailTemplateService.Templates) cassait au démarrage
→ maven-compiler-plugin <parameters>true</parameters> (noms params en bytecode)
2. Maven warning "build.plugins.plugin.version missing"
→ ajout <version>3.13.0</version> au compiler-plugin (cohérent avec api module)
3. Quarkus runtime warning "quarkus.keycloak.policy-enforcer.enable is deprecated"
→ renommé en policy-enforcer.enabled dans application.properties + application-test.properties
(depuis Quarkus 3.x, propriété renommée pour cohérence avec autres flags enabled)
Remplace les tests "placeholders" qui acceptaient anyOf(200, 500)
par des tests robustes avec assertions sur le contenu JSON.
Modifications:
- DashboardResourceTest: 6 → 8 tests avec setup de données réelles
* Ajout BeforeEach avec création Organisation + Membre de test
* Validation du contenu JSON (organizationId, stats, activities, events)
* Tests cas d'erreur (params manquants, UUIDs invalides)
- MembreDashboardResourceTest: 2 → 5 tests
* Tests ajustés pour fonctionner sans données seed
* Ajout test authentification (401)
* Tests 404 pour membre inexistant
- MembreDashboardServiceTest: ajusté pour absence de données seed
* Tests 404/NotFoundException au lieu d'attendre des données seed
- application-test.properties: fix wave.api.key/secret vides
* Valeurs factices pour éviter erreur config en tests
Résultat: 17 tests dashboard, 100% de réussite (0 erreurs, 0 échecs)
Tâche: #57 - Remplacer tests placeholders dashboard
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>