# Configuration UnionFlow Server - Profil Test # Ce fichier est chargé automatiquement quand le profil 'test' est actif # Configuration Base de données H2 pour tests quarkus.datasource.db-kind=h2 quarkus.datasource.username=sa quarkus.datasource.password=sa quarkus.datasource.jdbc.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=PostgreSQL;NON_KEYWORDS=MONTH,YEAR # Configuration Hibernate pour tests quarkus.hibernate-orm.database.generation=update # Désactiver complètement l'exécution des scripts SQL au démarrage quarkus.hibernate-orm.sql-load-script=no-file # Empêcher Hibernate d'exécuter les scripts SQL automatiquement # Note: Ne pas définir quarkus.hibernate-orm.sql-load-script car une chaîne vide peut causer des problèmes # Configuration Flyway pour tests (désactivé complètement) quarkus.flyway.migrate-at-start=false quarkus.flyway.enabled=false quarkus.flyway.baseline-on-migrate=false # Note: Ne pas définir quarkus.flyway.locations car une chaîne vide cause une erreur de configuration # Configuration Keycloak pour tests (désactivé) quarkus.oidc.tenant-enabled=false quarkus.keycloak.policy-enforcer.enabled=false # # Désactivation GLOBALE des DevServices en mode test. # Pourquoi le global et pas seulement quarkus.keycloak.devservices.enabled=false : # L'extension quarkus-keycloak-admin-client (admin-rest-client-deployment) a un # BuildStep `requireKeycloakDevService` annoté # @BuildSteps(onlyIf = {IsDevServicesSupportedByLaunchMode, DevServicesConfig.Enabled, # KeycloakAdminClientInjectionEnabled}) # qui produit INCONDITIONNELLEMENT un KeycloakDevServicesRequiredBuildItem dès que cette # extension est dans le classpath — peu importe `quarkus.oidc.tenant-enabled` ou # `quarkus.keycloak.devservices.enabled`. Le seul kill switch respecté par cette # extension est `DevServicesConfig.Enabled` ⇒ `quarkus.devservices.enabled`. # Cohérence d'archi (pas un appauvrissement) : # - H2 in-memory configuré explicitement (pas de Postgres DevService nécessaire). # - OIDC `tenant-enabled=false` (pas d'auth en test → KC inutile). # - Aucune autre extension utilisant DevServices dans ce profil. # Dev mode (mvn quarkus:dev) : non affecté, DevServices restent actifs. quarkus.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. # Le passage à Testcontainers nécessitera de retirer la ligne `quarkus.devservices.enabled=false` # ci-dessus (pour réactiver le Postgres DevService) tout en gardant l'OIDC désactivé. # Cf. memory : project_test_infrastructure_debt.md # Configuration HTTP pour tests quarkus.http.port=0 quarkus.http.test-port=0 # Wave — mock pour tests wave.mock.enabled=true wave.api.key=test-wave-api-key-for-unit-tests wave.api.secret=test-wave-api-secret-for-unit-tests wave.redirect.base.url=http://localhost:8080 # Kafka — in-memory connector pour les tests (pas de broker Kafka requis) mp.messaging.outgoing.finance-approvals-out.connector=smallrye-in-memory mp.messaging.outgoing.dashboard-stats-out.connector=smallrye-in-memory mp.messaging.outgoing.notifications-out.connector=smallrye-in-memory mp.messaging.outgoing.members-events-out.connector=smallrye-in-memory mp.messaging.outgoing.contributions-events-out.connector=smallrye-in-memory mp.messaging.incoming.finance-approvals-in.connector=smallrye-in-memory mp.messaging.incoming.dashboard-stats-in.connector=smallrye-in-memory mp.messaging.incoming.notifications-in.connector=smallrye-in-memory mp.messaging.incoming.members-events-in.connector=smallrye-in-memory mp.messaging.incoming.contributions-events-in.connector=smallrye-in-memory