fix: Corriger les tests fonctionnels cassés par le routing tenant
Le commit 8c70ed1 a introduit le routing runtime vers les bases tenant.
En environnement test, Doctrine ajoute un suffixe '_test' au dbname via
dbname_suffix, mais TenantAwareConnection.useTenantDatabase() parsait
l'URL brute sans préserver ce suffixe. Résultat : les données persistées
par les tests allaient dans classeo_master_test, mais les requêtes HTTP
(après le switch de connexion) lisaient depuis classeo_master.
La correction préserve le dbname_suffix des paramètres par défaut lors
du switch tenant, garantissant la cohérence entre persist et read.
This commit is contained in:
@@ -73,6 +73,13 @@ final class TenantAwareConnection extends Connection implements TenantDatabaseSw
|
||||
/** @phpstan-var Params $connectionParams */
|
||||
$connectionParams = array_merge($this->defaultConnectionParams, $this->dsnParser->parse($databaseUrl));
|
||||
|
||||
// Preserve dbname_suffix from Doctrine config (e.g. '_test' in test env)
|
||||
// so that tenant connections target the same database as the default one.
|
||||
$suffix = $this->defaultConnectionParams['dbname_suffix'] ?? null;
|
||||
if (is_string($suffix) && isset($connectionParams['dbname']) && is_string($connectionParams['dbname'])) {
|
||||
$connectionParams['dbname'] .= $suffix;
|
||||
}
|
||||
|
||||
$this->applyConnectionParams($connectionParams, $databaseUrl);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user