fix: Corriger les tests fonctionnels cassés par le routing tenant
Some checks failed
CI / Backend Tests (push) Has been cancelled
CI / Frontend Tests (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
CI / Naming Conventions (push) Has been cancelled
CI / Build Check (push) Has been cancelled

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:
2026-03-12 00:41:57 +01:00
parent 8f83dafb7a
commit 56bc808d85

View File

@@ -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);
}