Lorsqu'un super-admin crée un établissement via l'interface, le système doit automatiquement créer la base tenant, exécuter les migrations, créer le premier utilisateur admin et envoyer l'invitation — le tout de manière asynchrone pour ne pas bloquer la réponse HTTP. Ce mécanisme rend chaque établissement opérationnel dès sa création sans intervention manuelle sur l'infrastructure.
33 lines
709 B
PHP
33 lines
709 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Tests\Unit\SuperAdmin\Infrastructure\Provisioning;
|
|
|
|
use App\Shared\Infrastructure\Tenant\TenantDatabaseSwitcher;
|
|
|
|
/**
|
|
* Test double that records database switching operations.
|
|
*/
|
|
final class SpyDatabaseSwitcher implements TenantDatabaseSwitcher
|
|
{
|
|
/** @var string[] */
|
|
public array $switchedTo = [];
|
|
public bool $restoredToDefault = false;
|
|
|
|
public function useTenantDatabase(string $databaseUrl): void
|
|
{
|
|
$this->switchedTo[] = $databaseUrl;
|
|
}
|
|
|
|
public function useDefaultDatabase(): void
|
|
{
|
|
$this->restoredToDefault = true;
|
|
}
|
|
|
|
public function currentDatabaseUrl(): ?string
|
|
{
|
|
return null;
|
|
}
|
|
}
|