# Configuration de test : vraie base PostgreSQL loremind_test. # # La base `loremind_test` doit exister sur l'instance locale (port 5432). # AUCUN credential reel ici (fichier versionne !) : definissez les variables # d'environnement en local (IDE ou shell) comme en CI : # SPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME, SPRING_DATASOURCE_PASSWORD spring.datasource.url=${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/loremind_test} spring.datasource.username=${SPRING_DATASOURCE_USERNAME:loremind_test} spring.datasource.password=${SPRING_DATASOURCE_PASSWORD:loremind_test} spring.datasource.driver-class-name=org.postgresql.Driver # Configuration JPA pour les tests : schema recree a chaque run, pas de logs SQL. spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.show-sql=false # Flyway desactive en test : le schema est gere par Hibernate create-drop # (recree a chaque run), pas par les migrations. Evite tout conflit Flyway/DDL. spring.flyway.enabled=false # Pool Hikari volontairement minuscule en test : la suite cree de nombreux # contextes Spring distincts (combinaisons de @MockitoBean / @TestPropertySource), # tous gardes en cache simultanement. Avec le pool par defaut (10), on epuisait # les connexions Postgres ("remaining connection slots are reserved"). 2 par # contexte suffit (tests sequentiels) et borne le total bien sous max_connections. spring.datasource.hikari.maximum-pool-size=2 spring.datasource.hikari.minimum-idle=0 spring.datasource.hikari.idle-timeout=10000 # Credentials admin factices pour satisfaire le fail-closed de SecurityConfig. admin.username=test-admin admin.password=test-admin-password # Brain et MinIO : URLs factices — aucun appel reseau attendu dans les tests # de persistence. MinioConfig est tolerant (PostConstruct capture). brain.base-url=http://localhost:0 brain.timeout-seconds=5 brain.internal-secret=test-secret minio.endpoint=http://localhost:9000 minio.access-key=test minio.secret-key=test minio.bucket=test-bucket # open-in-view fixe explicitement (defaut true) : supprime l'avertissement au boot. spring.jpa.open-in-view=true # Le daemon de refresh de licence (@Scheduled) n'a rien a faire pendant les tests : # son tick echouait en arriere-plan (table licenses droppee par le create-drop # partage entre contextes) => stacktraces parasites. On le desactive ici. licensing.refresh.enabled=false # --- Sortie de test LISIBLE --------------------------------------------------- # Pas de banniere Spring (repetee a chaque contexte), et seuls les WARN/ERROR # remontent : la masse d'INFO de demarrage (Spring/Hibernate/Hikari, "Started # XxxTest", seeder...) n'apporte rien et noyait les vrais signaux. spring.main.banner-mode=off logging.level.root=WARN # Tests de CHEMIN D'ERREUR : les controleurs loggent VOLONTAIREMENT l'echec (ex: # Watchtower injoignable -> 502, Brain down -> 502) AVANT de renvoyer le bon statut # HTTP teste. L'exception est attrapee, jamais propagee : ce sont des logs attendus. logging.level.com.loremind.infrastructure.web.controller=OFF # WARN attendus sur des tests de robustesse (registry injoignable, suppression best-effort). logging.level.com.loremind.infrastructure.updates.UpdateCheckService=ERROR logging.level.com.loremind.infrastructure.ai.BrainNotebookIndexClient=ERROR # Le warning MinIO au @PostConstruct (serveur absent en test) est ATTENDU. logging.level.com.loremind.infrastructure.storage=ERROR